Python 3.x Pandas dataframe的groupby格式不正确,有什么问题?
我正在尝试根据第一列的值对所有列求和,但groupby.sum意外不起作用 下面是一个简单的例子:Python 3.x Pandas dataframe的groupby格式不正确,有什么问题?,python-3.x,pandas,pandas-groupby,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(d
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
据我所知,dataframe不是pandas执行分组的正确格式。我想了解它有什么问题,因为这只是一个玩具的例子,但我有一个真正的数据集相同的问题
我试图阅读的真实数据是约翰·霍普金斯大学新冠病毒-19数据集:
您忘记了将聚合的输出分配给变量,因为聚合在原地不起作用。因此,在您的解决方案中,
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
啊,是的,不在原地\掌纹