我正在研究芝加哥犯罪数据集,并创建了一个名为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
答案 0 :(得分:1)
您可以在此处查看map
或apply
-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