【发布时间】:2018-03-14 10:16:52
【问题描述】:
数据存储在 csv 文件中。我使用 pd.read_csv 将数据从 csv 加载到 python 中。我正在寻找一种方法来对空格前具有相同名字的名称进行分组,然后使用 pandas 对 Score1 和 Score2 中的相应值求和。
df = pd.DataFrame({'Names':['Jason','Jason S','Dan','Dan S'],'Score1':[30,np.nan,20,40],'Score2':[40,60,30,np.nan]})
Names Score1 Score2
Jason 30 40
Jason S NaN 60
Dan 20 30
Dan S 40 NaN
我想看到如下数据框的结果。
Names Score1 Score2
Jason 15 50
Dan 30 15
到目前为止,我有以下代码,它只是进行分组,没有别的。
import pandas as pd
df = pd.read_csv('test.csv')
df1 = pd.DataFrame(df.groupby(['Names'], as_index=False)['Score1', 'Score2'].sum().mean())
print(df1)
我会很感激任何提示。提前致谢。
【问题讨论】:
-
你能告诉我们你到目前为止有什么吗?在代码方面
-
@Jesse。刚刚添加了代码。我猜这不是正确的做法。
-
你可以试试 df.groupby('Names').apply(lambda x: x.sum()) 吗?
-
@Jesse。我试过了,它把 Jason 分组,而不是 Dan。
标签: python-3.x pandas