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。
答案 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