python - 如果值计数低于阈值,则将列值映射到 'miscellaneous' - 分类列 - Pandas Dataframe

标签 python pandas

我有一个形状为 ~ [200K, 40] 的 Pandas 数据框。数据框有一个分类列(许多列之一),其中包含超过 1000 个唯一值。我可以使用以下方法可视化每个此类唯一列的值计数:

df['column_name'].value_counts()

我现在如何将值(value)观与:

  • value_count 小于阈值,比如 100,并将它们映射到,比如“杂项”?
  • 或基于累计行数 % ?

最佳答案

您可以从 value_counts 的索引中提取要屏蔽的值,然后使用 replace 将它们映射到“杂项” :

import pandas as pd
import numpy as np

df = pd.DataFrame(np.random.randint(0, 10, (2000, 2)), columns=['A', 'B'])

frequencies = df['A'].value_counts()

condition = frequencies<200   # you can define it however you want
mask_obs = frequencies[condition].index
mask_dict = dict.fromkeys(mask_obs, 'miscellaneous')

df['A'] = df['A'].replace(mask_dict)  # or you could make a copy not to modify original data

现在,使用 value_counts 会将所有低于阈值的值归为杂项:

df['A'].value_counts()

df['A'].value_counts()
Out[18]: 
miscellaneous    947
3                226
1                221
0                204
7                201
2                201

关于python - 如果值计数低于阈值,则将列值映射到 'miscellaneous' - 分类列 - Pandas Dataframe,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52164441/

相关文章:

python pandas OLS.predict,正确的签名是什么?

javascript - 如何使用 Canvas 元素显示图形

python - 在 pandas 中切片串联数据框

python - 将数据帧字典写入文件

python - 我们如何提取数据框中具有顺序值的行?

python - 更改不同虚拟值的散点图中点的颜色

python - 向现有数据透视表添加一行

python - 使用 Scrapy 抓取 JSON 响应

python - 在 pandas DataFrame 中快速应用字符串操作

python - 如何在Spacy中为OOV术语指定词向量?