我刚接触熊猫。我对这件事不太了解,所以请对我放轻松。 我试着用一个折线图来描绘2009年到2013年A区和B区火灾的面积和频率。我知道如何导入一个.csv文件,但我有问题分组的系列和创建图形。 我的csv文件如下所示:
Date, Area, NaturalDisaster
12/10/2009, A, Fire
12/13/2009, B, Flood
01/12/2010, B, Fire
05/01/2011, A, Fire
30/11/2012, B, Flood
14/03/2013, B, Fire
你能帮我开始吗。我将感激任何帮助。 非常感谢。你知道吗
您可以使用^{} 对熊猫中的数据进行分组。你知道吗
groupby
和类似函数背后的主要思想是"Split - Apply - Combine",一般来说,您可以:要获取区域A和B内发生火灾的频率,必须首先仅选择火灾行,而不是洪水行,可以使用boolean indexing和:
然后需要根据区域(A或B)进行分组(或拆分)。您只需使用
groupby('Area')
就可以做到这一点。将此添加到前一行代码中,将变成:最后,在pandas中,您需要apply some aggregate function到您的组(apply阶段),我们将使用
count()
来计算结果的数量。该行随后变为:但是有个问题。此结果有两列,其中的数字完全相同。这是因为我们同时计算了
Date
列和NaturalDisaster
列。这种重复的信息处理起来很烦人,所以让我们在计算时只取一列。最后一行变成我们现在有了在A区和B区发生的火灾事件的数量,但理想情况下我们需要频率。我们可以通过除以火灾事件的总数得出,火灾事件的总数由
sum(areas)
给出:我们现在有了一个数据帧,其中包含a区和B区火灾事件的频率
把所有的代码集中到一堆,它就变成了:
最后,我使用groupby回答了这个问题,因为您专门询问了这个问题,但是您也可以使用^{} 执行相同的操作(以及类似的强大功能)。使用
pivot_table
创建areas
数据帧类似于然后继续使用上面给出的相同代码。你知道吗
相关问题 更多 >
编程相关推荐