将数据框列中的相似行合并为一个

时间:2019-04-06 21:47:33

标签: python python-3.x pandas

我正在研究芝加哥犯罪数据集,并创建了一个名为primary的数据框,这只是犯罪类型。然后,我按犯罪类型分组并计算了犯罪数量。这是相关的代码。

primary = crimes2012[['Primary Type']].copy()
test=primary.groupby('PrimaryType').size().sort_values().reset_index(name='Count')

现在我有一个数据框“ test”,其中包含犯罪及其罪名。我想要做的是将某些罪行合并在一起。例如,“非刑事”和“非刑事”和“非刑事(指定对象)”。但是因为它们现在是行,所以我不知道该怎么做。我正在尝试使用.loc[]

我也尝试使用

test['Primary Type'=='NON-CRIMINAL'] = test['Primary Type'=='NON - CRIMINAL']+test['Primary Type'=='NON-CRIMINAL']+test['Primary Type'=='NON-CRIMINAL (SUBJECT SPECIFIED)']

但是当然只返回布尔值false

1 个答案:

答案 0 :(得分:1)

您可以在此处查看mapapply-https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.Series.map.html

您将必须创建您的输入到所需输出的映射(作为字典) desired_output = {"NON CRIMINAL": "NON-CRIMINAL", "NC": "NON-CRIMINAL", ...}

并将其应用/映射到您的primary系列,如下所示-

primary = primary.map(desired_output)

然后像现在一样groupby