如何对data_in
中的熊猫行求和,以获得类似于data_out
的行?
data_in = [
{ 'col-a':'a1', 'col-b':'b1', 'col-z':'z1', 'value':1},
{ 'col-a':'a1', 'col-b':'b1', 'col-z':'z1', 'value':2},
{ 'col-a':'a2', 'col-b':'b2', 'col-z':'z2', 'value':10},
{ 'col-a':'a2', 'col-b':'b2', 'col-z':'z2', 'value':20}
]
df = pd.DataFrame(data_in)
# which operation to apply on df to get rows like in data_out?
# ...
data_out = [
{ 'col-a':'a1', 'col-b':'b1', 'col-z':'z1', 'value':3},
{ 'col-a':'a2', 'col-b':'b2', 'col-z':'z2', 'value':30}
]
答案 0 :(得分:2)
这是一个汇总问题。您可以在熊猫中使用.groupby
,并且在汇总时可以使用.value.sum()
df_out = df.groupby(['col-a', 'col-b', 'col-z']).value.sum().reset_index()
print(df_out)
col-a col-b col-z value
0 a1 b1 z1 3
1 a2 b2 z2 30
答案 1 :(得分:1)
这是您要查找的行:
uniq -c