熊猫数据框的groupby格式不正确,这是什么问题?

时间:2020-03-24 10:21:55

标签: python-3.x pandas pandas-groupby

我试图根据第一列的值求和所有列,但是groupby.sum出乎意料地不起作用。

这是一个最小的示例:

import pandas as pd
data = [['Alex',10, 11],['Bob',12, 10],['Clarke',13, 9], ['Clarke',1, 1]]
df = pd.DataFrame(data,columns=['Name','points1', 'points2'])
print(df)

df.groupby('Name').sum()

print(df)

我明白了:

     Name  points1  points2
0    Alex       10       11
1     Bob       12       10
2  Clarke       13        9
3  Clarke        1        1

不是这个:

     Name  points1  points2
0    Alex       10       11
1     Bob       12       10
2  Clarke       14       10

据我了解,数据框不是熊猫执行分组依据的正确格式。我想了解一下这是怎么回事,因为这只是一个玩具示例,但是对于真实的数据集,我也有同样的问题。

我要读取的真实数据是约翰霍普金斯大学Covid-19数据集:

https://github.com/CSSEGISandData/COVID-19/tree/master/csse_covid_19_data/csse_covid_19_time_series

1 个答案:

答案 0 :(得分:1)

您忘记将聚合的输出分配给变量,因为聚合不能就地工作。因此,在您的解决方案print (df)之前和之后的groupby返回了相同的原始DataFrame

df1 = df.groupby('Name', as_index=False).sum()  
print (df1)
     Name  points1  points2
0    Alex       10       11
1     Bob       12       10
2  Clarke       14       10

或者您可以设置为相同的变量df

df = df.groupby('Name', as_index=False).sum()  
print (df)
     Name  points1  points2
0    Alex       10       11
1     Bob       12       10
2  Clarke       14       10