在我的代码中,df
是这样定义的
df = pd.read_excel(io=file_name, sheet_name=sheet, sep='\s*,\s*')
我有一个 [86 行 x 1 列]
数据框 df
在 print(df)
上看起来像这样
0
Male 511
Female 461
Male 273
Female 217
Male 394
Female 337
Female 337
Male 337
...
我希望编写一个代码来合并
像这样的Male
和Female
条目
0 1 2 3 ...
Male 511 273 394 337 ...
Female 461 217 337 337 ...
我需要做的最后一个任务是 .sum()
男性行,然后是女性行以获得每个性别的总和。我是 python 和 pandas 的新手,到目前为止我还没有取得太大进展。任何帮助、教程、文档都会很棒!谢谢!
编辑:keys
我指的是索引。我希望这些男性和女性的标签可以用来将这些行“组合”在一起,但我不知道该怎么做。
编辑:我已经通过直接完成了我的最后一个任务
print(df.ix['Female'].sum())
print(df.ix['Male'].sum())
但我还没有完成我的首要任务。有什么想法吗?
最佳答案
通过 GroupBy.cumcount
创建 MultiIndex
对于通过 unstack
reshape 创建的新列名称:
df.index = [df.index, df.groupby(level=0).cumcount()]
print (df)
0
Male 0 511
Female 0 461
Male 1 273
Female 1 217
Male 2 394
Female 2 337
3 337
Male 3 337
df = df[0].unstack()
print (df)
0 1 2 3
Female 461 217 337 337
Male 511 273 394 337
然后按axis=1
对所有行求和
:
print (df.sum(axis=1))
Female 1352
Male 1515
dtype: int64
关于python - 如何对具有相同键的行求和?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50757929/