给定下面的列表,我想使用“Color”列的模式填充“Color猜测”列,该列的条件是“Type”和“Size”,而忽略NULL、#N/A等。
例如,小猫最常见的颜色是什么,中等犬最常见的颜色是什么,等等。
型号颜色猜猫小棕色小狗小黑狗大黑猫中白猫中#N/A大棕色猫大猫大N/A大狗大棕色狗中#N/A猫小#N/A小狗小白狗小黑狗小黑狗中白狗#N/A猫大棕色狗小白狗大#N/A
发布于 2019-06-28 21:16:13
正如BarMar在注释中已经指出的那样,我们可以在这里使用链接答案中的pd.Series.mode
。这里唯一的诀窍是,我们必须使用groupby.transform
,因为我们希望数据返回到与dataframe相同的形状:
df['Color Guess'] = df.groupby(['Type', 'Size'])['Color'].transform(lambda x: pd.Series.mode(x)[0])
Type Size Color Color Guess
0 Cat small brown brown
1 Dog small black black
2 Dog large black brown
3 Cat medium white white
4 Cat medium NaN white
5 Dog large brown brown
6 Cat large white brown
7 Cat large NaN brown
8 Dog large brown brown
9 Dog medium NaN white
10 Cat small NaN brown
11 Dog small white black
12 Dog small black black
13 Dog small brown black
14 Dog medium white white
15 Dog medium NaN white
16 Cat large brown brown
17 Dog small white black
18 Dog large NaN brown
https://stackoverflow.com/questions/56813078
复制相似问题