基于值计数的命名

时间:2018-12-24 06:51:00

标签: python python-3.x pandas

我想将频率小于35的列的值命名为python3中的'OTHERS'

例如,如果我说df.column_valuecounts(),则会得到不同的valuecounts,

CA 45

TE 56

FL 4

NC 8

我尝试了以下代码,这些代码在某种程度上解决了该问题:

df.STATE[~df.STATE.isin(df.STATE.value_counts().index[:35])] = 'Other'

但是我希望我的结果如下:

CA 45

TE 56

FL OTHERS

NC OTHERS

1 个答案:

答案 0 :(得分:1)

您可以使用

df.val = df.loc[:, 'val'].apply(lambda x: 'OTHERS' if x<35 else x)

其中stateval是列名。

使用val选择loc列,然后在lambda函数的帮助下使用apply()