Pandas数据框示例:
ID Name COMMENT1 COMMENT2 NUM 1 dan hi hello 1 1 dan you friend 2 3 jon yeah nope 3 2 jon dog cat .5 3 jon yes no .1
我正在尝试创建一个数据帧,该数据帧按ID和NAME分组,连接COMMENT1和COMMENT2,COMMENT2也对NUM进行求和
这就是我要找的:
ID Name COMMENT1 COMMENT2 NUM 1 dan hi you hello friend 3 3 jon yeah yes nope no 3.1 2 jon dog cat .5
我试着用这个:
input_df = input_df.groupby(['ID', 'NAME', 'COMMENT1', 'COMMENT2']).sum().reset_index()
但没用。
如果我用这个:
input_df = input_df.groupby(['ID']).sum().reset_index()
它对NUM列求和,但忽略了所有其他列。
将数据示例转换为csv文件,我们可以执行以下操作:
再做一点工作,定义的函数就可以自动检测哪些列中有数字,并将它们添加到数字列列表中。
我认为这与this post中遇到的问题和挑战相似,但并不完全相同。
让我们排成一行
您还可以告诉
.agg()
要为每个列和字符串列使用哪个聚合器函数,传递' '.join
(注意,没有括号,因为您不想调用.join
,而是将其作为参数本身传递):df.groupby(['ID','Name'],as_index=False).agg({'COMMENT1': ' '.join, 'COMMENT2': ' '.join, 'NUM': 'sum'})
相关问题 更多 >
编程相关推荐