Pandas如何将更改应用于过滤的分组框架?

时间:2018-04-05 13:33:11

标签: pandas pandas-groupby

df = pd.DataFrame({'Prefix' : ['Mr','Mr','Mrs','Col'], 'Sex' : ['male','male','female','male']})

#Filter all elements which only got a single Prefix - rare elements

df.groupby(['Prefix'],as_index=False).filter(lambda x: len(x) == 1)

如何根据上面的过滤器修改原始df? 我要做的是将基于上面的过滤器的'Col'和'Sex'细节等稀有值更改为更通用的组,例如'Mr'/'Mrs'。 更具体的说,当前缀是帧中的单个值时,我想根据性别列将其替换为Mr / Mrs。

1 个答案:

答案 0 :(得分:0)

s = df.Prefix.value_counts()
df['Prefix'] = df.loc[df.Prefix.isin(s[s==1].index),'Sex'].map({'male':'Mr','female':'Mrs'}).combine_first(df['Prefix'])

输出:

  Prefix     Sex
0     Mr    male
1     Mr    male
2    Mrs  female
3     Mr    male