【发布时间】:2021-11-20 23:39:14
【问题描述】:
我正在尝试使用数据帧上的 apply 和 grouby 函数计算分组值的出现次数并将值写入列中。我有以下数据框:
df = pd.DataFrame({'colA': ['name1', 'name2', 'name2', 'name4', 'name2', 'name5', 'name5'], 'colB': ['red', 'yellow', 'yellow', 'black', 'yellow', 'green', 'blue']})
我有两个语句可以给出正确的结果,但我需要将结果结合起来。一种是:
df_new = df.groupby("colA").count()
给了
colA
name1 1
name2 3
name4 1
name5 2
另一个是
df_new = df.groupby("colA")["colB"].apply(lambda lists: ','.join(color)).reset_index(name='Color')
并给予
colA Color
0 name1 red
1 name2 yellow,yellow,yellow
2 name4 black
3 name5 green,blue
我需要的是看起来像这样的组合
colA Color Count grouped A
0 name1 red 1
1 name2 yellow,yellow,yellow 3
2 name4 black 1
3 name5 green,blue 2
尝试以多种方式进行组合,当然也进行了研究,但我做不到。
【问题讨论】:
标签: python dataframe pandas-groupby pandas-apply