我有一张表,如下所示:
Id Family Modal
a1 Jack A381
a2 Jack B674
a4 Sutyama 789b
a5 Sutyama 987y
我想得到下面的输出
Id Family Modal Overall
a1 Jack A381 A381,B674
a2 Jack B674 A381,B674
a4 Sutyama 789b 789b,987y
a5 Sutyama 987y 789b,987y
我尝试了下面的代码,但是它返回了我的空列
df["Overall"]=df.groupby("Family")["Modal"].apply(' '.join)
有人有主意吗?
最佳答案
下面是我在使用groupby
应用函数时的经验法则:
要计算并返回聚合输出,请使用GroupBy.agg
或GroupBy.apply
,或
要将聚合结果广播回原始行,请使用GroupBy.transform
。
这是第二个规则的用例:
df['Overall'] = df.groupby("Family")["Modal"].transform(','.join)
df
Id Family Modal Overall
0 a1 Jack A381 A381,B674
1 a2 Jack B674 A381,B674
2 a4 Sutyama 789b 789b,987y
3 a5 Sutyama 987y 789b,987y
关于python - 如何将不同的值行合并为新列的单行?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56420276/