过滤pandas中的对象列

时间:2018-05-05 09:33:58

标签: python python-3.x pandas dataframe

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

  1. 我们假设我的目标列是'名字'。我有兴趣保留以下名字:约翰,玛丽,克里斯,安娜。如何“过滤”我的数据集,以便它只包含目标列中包含这些名称的行?

  2. 过滤数据集之后,我想创建一个分类器,它将有四个类,这意味着四个名称。我想过使用get_dummies,但是我会有4个目标列。我只想转换例如John = 1,Mary = 2等

  3. 有什么想法吗?

    非常感谢

1 个答案:

答案 0 :(得分:0)

您可以使用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来实现。