Pandas groupby聚合字符串时如何在拼接结果间添加逗号分隔
实现分组聚合时按指定分隔符拼接字符串
直接替换聚合函数即可,不要用sum做字符串聚合——sum对字符串的操作是连续执行+运算,不会自动插入分隔符。你只需要在agg中使用", ".join作为聚合逻辑,就能把同组的字符串用逗号加空格拼接。
兼容所有pandas版本的代码:
import pandas as pd data = {'one':['one', 'five', 'one', 'one'], 'two':['one', 'five', 'one', 'one']} df = pd.DataFrame(data) new_df = df.groupby('one').agg(names = ('two', lambda x: ', '.join(x))) print(new_df)
如果你使用pandas 1.3.0及以上版本,可以直接传入join函数,写法更简洁:
new_df = df.groupby('one').agg(names = ('two', ', '.join))
运行后得到的输出和预期完全一致:
names one five five one one, one, one
内容的提问来源于stack exchange,提问作者user18532875
相关产品推荐
相关产品推荐

