合并 pandas 中分类级别的级别

Merge levels for categorical levels in pandas

我想知道,如何在 Python 中合并分类变量的水平?

我有以下数据集:

dataset['Reason'].value_counts().head(5).
Reason  Count
0       339
7       125
11      124
3        82
0        65

现在,我想合并第一次和最后一次出现的,这样输出看起来像:

dataset['Reason'].value_counts().head(5)
Reason  Count
0       404
7       125
11      124
3        82
2        52

为了找到原因,我不得不拆分一个字符串,这可能导致 reason 列中的各种级别。

我试过使用loc函数,但我想知道,是否有更聪明的方法:

dataset.loc[dataset['Reason'] == '0' , ['Reason']] = 'On request'
dataset.loc[dataset['Reason'] == '0 ' , ['Reason']] = 'On request'

谢谢,迈克尔。

如@anky_91 提到的,如果所有值都是字符串,则使用 Series.str.strip

dataset['Reason'].str.strip().value_counts().head(5)

如果某些值是数字,首先由 Series.astype 转换为 strings:

dataset['Reason'].astype(str).str.strip().value_counts().head(5)