在熊猫数据帧df
中,我有如下列:
NAME KEYWORD AMOUNT INFO
0 orange fruit 13 from italy
1 potato veggie 7 from germany
2 potato veggie 9 from germany
3 orange fruit 8 from italy
4 potato veggie 6 from germany
在执行groupby KEYWORD
操作时,我希望构建每个组的AMOUNT
值之和,并始终保持其他列的第一个值,以便结果如下:
NAME KEYWORD AMOUNT INFO
0 orange fruit 21 from italy
1 potato veggie 22 from germany
我试过了
df.groupby('KEYWORD).sum()
但这“总结”了所有的栏目,即
NAME KEYWORD AMOUNT INFO
0 orangeorange fruit 21 from italyfrom italy
1 potatopotatopotato veggie 22 from germanyfrom germanyfrom germany
然后我尝试对不同的列使用不同的函数:
df.groupby('KEYWORD).agg({'AMOUNT': sum, 'NAME': first, ....})
与
def first(f_arg, *args):
return f_arg
但不幸的是,这给了我一个“ValueError: function does not reduce
”错误。你知道吗
所以我有点不知所措。如何将sum
仅应用于AMOUNT
列,而保留其他列?你知道吗
对自定义aggfunc dict使用^{} +^{}
dict.fromkeys
给了我一个很好的方法来推广N个列。如果列顺序很重要,请在末尾添加^{按列} ,然后^{} 聚合值:
KEYWORD
使用^{相关问题 更多 >
编程相关推荐