熊猫数据框填充模式

时间:2020-04-03 12:02:46

标签: python pandas dataframe pandas-groupby

我有以下数据框:

df = pd.DataFrame({'id': [1,2,3,4,1,1,4,4,3, 1, 3], 'name':['name1', 'name2', 'name2', 'name1', 'name2', 'name1', 'name1', 'name3', 'name3', 'name2', 'name2']})
id   name
1  name1
2  name2
3  name2
4  name1
1  name2
1  name1
4  name1
4  name3
3  name3
1  name2
3  name2

我想用该行的id的模式填充所有名称(如果有多个是mode的元素,则用任何人填充),最终的数据帧应如下所示:

id   name
1  name1
2  name2
3  name2
4  name1
1  name1
1  name1
4  name1
4  name1
3  name2
1  name1
3  name2

我考虑过groupby id并获取模式,然后合并数据帧,因为我似乎找不到模式聚合功能。

1 个答案:

答案 0 :(得分:2)

您可以执行groupby().transform()

df['mode'] = df.groupby('id')['name'].transform(lambda x: x.mode()[0])

输出:

    id   name   mode
0    1  name1  name1
1    2  name2  name2
2    3  name2  name2
3    4  name1  name1
4    1  name2  name1
5    1  name1  name1
6    4  name1  name1
7    4  name3  name1
8    3  name3  name2
9    1  name2  name1
10   3  name2  name2