Pandas groupby与csv的行

时间:2015-02-28 21:37:21

标签: python csv pandas group-by aggregate

我有一个大型CSV文件,我从(月和已取消)中拉出两列,需要在数据框中显示结果。月份是整数(例如,csv中的1月份为1),需要将其转换为字符串。

我遇到的问题是设置正确的索引并将这些月份的数据分组在一起。

    import pandas as pd
    data = pd.read_csv('data.csv', encoding='latin-1', usecols=['Month','Cancelled'])
    grouped = data.groupby(axis=1)

我想要的预期输出是:

               Cancelled
    January        19891

但我现在正在接收:

        Month  Cancelled
    0       1          0
    1       1          0
    2       1          0

1 个答案:

答案 0 :(得分:0)

由于您没有发布行输入数据。让我们考虑这个简单的例子来展示如何在pandas中创建groupby值;

在读取数据并放入数据帧后,您可以根据列groupby(['month'])之一对值进行分组,然后对这些值应用函数,Pandas包含许多常见的值,例如mean() ,max(),median()等:例如,您可以使用sum()

 df.groupby(['month']).sum()

或使用聚合

传递任何其他功能
df.groupby(['month']).aggregate(numpy.sum)

import pandas as pd
from io import StringIO


data="""month  cancelled
0    1      1
1    1      0
2    0      1
3    1      1
4    0      0
5    1      1
6    1      1
7    2      1
8    2      1
9    1      1"""


df= pd.read_csv(StringIO(data.decode('UTF-8')),delim_whitespace=True )
print df.groupby(['month']).sum()

<强> RESULT

       cancelled
month           
0              1
1              5
2              2