如何基于value_counts()条件修改Pandas DataFrame的单元格值
解决方法
你可以通过先统计频次、筛选低频次元素、再批量替换的方式实现需求,完整代码如下:
import pandas as pd # 原始DataFrame df = pd.DataFrame({'data':['lemon', 'apple', 'lemon', 'apple', 'apple', 'lemon', 'pear', 'apple', 'pear', 'lemon', 'pear', 'orange', 'banana', 'banana', 'pear']}) # 1. 统计data列各元素的出现频次 value_counts = df['data'].value_counts() # 2. 筛选出出现频次小于4的元素列表 low_freq_values = value_counts[value_counts < 4].index # 3. 批量替换低频次元素为'other' df.loc[df['data'].isin(low_freq_values), 'data'] = 'other' print(df)
运行后输出结果和预期完全一致:
data 0 lemon 1 apple 2 lemon 3 apple 4 apple 5 lemon 6 pear 7 apple 8 pear 9 lemon 10 pear 11 other 12 other 13 other 14 pear
内容的提问来源于stack exchange,提问作者taga
相关产品推荐
相关产品推荐

