我想将频率小于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
答案 0 :(得分:1)
您可以使用
df.val = df.loc[:, 'val'].apply(lambda x: 'OTHERS' if x<35 else x)
其中state
和val
是列名。
使用val
选择loc
列,然后在lambda函数的帮助下使用apply()
。