我有如下数据,共有7列。我想合并第1-6列中具有相同值的所有行,并对相应的第7列数据求和。
0.1 0.2 0.3 0.1 0.2 0.3 0.001
0.1 0.2 0.3 0.1 0.2 0.3 0.002
0.9 0.9 0.9 0.1 0.1 0.1 0.002
0.9 0.9 0.9 0.8 0.8 0.8 0.1
0.9 0.9 0.9 0.8 0.8 0.8 0.2
0.1 0.2 0.3 0.1 0.2 0.3 0.001
0.1 0.2 0.3 0.1 0.1 0.1 0.002
0.9 0.9 0.9 0.1 0.1 0.1 0.002
我尝试过以下代码:
import pandas as pd
df1 = pd.read_csv('test-data',sep='\s+',header=None,engine='python')
key1_sum = df1.groupby([0,1,2,3,4,5]).sum()
print(key1_sum)
我希望得到以下输出:
0.1 0.2 0.3 0.1 0.1 0.1 0.002
0.1 0.2 0.3 0.1 0.2 0.3 0.004
0.9 0.9 0.9 0.1 0.1 0.1 0.004
0.9 0.9 0.9 0.8 0.8 0.8 0.300
...但是我实际上得到了以下输出:
6
0 1 2 3 4 5
0.1 0.2 0.3 0.1 0.1 0.1 0.002
0.2 0.3 0.004
0.9 0.9 0.9 0.1 0.1 0.1 0.004
0.8 0.8 0.8 0.300
所以我只想不输出头部, 并完成相应列中的元素。
您能给我一些建议吗?
答案 0 :(得分:4)
当我们尝试groupby
时,我们不希望将groupby
键设为index
时,可以传递给as_index=False
key1_sum = df1.groupby([0,1,2,3,4,5],as_index=False).sum()
答案 1 :(得分:0)
pandas groupby()默认具有as_index=True, group_keys=True
:
as_index=False
以获取“ SQL样式”分组输出(没有时髦的行索引)