python - 过滤 Pandas 中的对象列

标签 python python-3.x pandas dataframe

我有一个 100000 行 X 200 列的数据集。我想进行分类。 我的目标列是一个对象(字符串),具有 1345 个唯一值。

  1. 假设我的目标列是“姓名”。我只想保留以下名字:John、Mary、Chris、Anna。如何“过滤”我的数据集,使其仅包含目标列中具有这些名称的行?

  2. 过滤数据集后,我想创建一个有四个类的分类器,即四个名称。我考虑过使用 get_dummies,但我将有 4 个目标列。我只想转换,例如,John = 1、Mary = 2 等。

有什么想法吗?

非常感谢

最佳答案

您可以使用 pd.DataFrame.loc 在列内进行过滤:

name_set = {'John', 'Mary', 'Chris', 'Anna'}
res = df.loc[df['names'].isin(name_set)]

您可以使用字典将您的姓名映射到数字标识符:

d = {'John': 1, 'Mary': 2, 'Chris': 3, 'Anna': 4}
res['names'] = res['names'].map(d)

第二步也可以使用Categorical Data来实现通过提取类别代码。

关于python - 过滤 Pandas 中的对象列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50187907/

相关文章:

python - python 3.1 中的测试驱动开发

python - 使用指定列表计算 Pandas 中的出现次数

python - 将列从一个数据框映射到另一个数据框以创建新列

python - groupby 和 join 结果的索引和数据类型包含在输出中

python - 将列表转置为数据行

python - 如何根据某些自定义标准找到最大对象?

python - Django HTTPS 设置 : Why does setting both SESSION_SAVE_EVERY_REQUEST and SESSION_COOKIE_SECURE break sessions?

python - 如何在python中将文件保存到特定目录?

python - 在 peewee 中使用 python 关键字作为模型字段

python-3.x - 按两列绘制多个箱线图