Pandas value_counts()对相同的值进行多次计数



我取了一个熊猫栏specialty,它看起来像这样:

0         1,5
1           1
2           1
3           1
4           1
5         1,5
6           3
7           3
8           1
9         1,3
10          1
11    1,2,4,6
12        1,5
13          6
14          3

并创建了一个新列,将包含多个项目的值转换为单个,如下所示:

df['spec_area'] = df['specialty'].replace({
'1,2' : 2,
'1,3' : 3,
'1,4' : 4,
'1,5' : 5,
'1,6' : 6,
'2,6' : 2,
'3,6' : 3,
'1,2,3': 3,
'1,2,6' : 2,
'1,3,6' : 3,
'1,2,3' : 3,
'1,2,4' : 4,
'1,2,4,6' : 4,
'1,2,5' : 5
})

当我运行df['spec_area'].value_counts()时,我得到:

1          211
missing     53
2           42
3           39
5           37
3           34
6           24
4           23
5           23
6           13
4           12
2           11
Name: spec_area, dtype: int64

我不明白为什么2-6里有两个。

您的列是string列,您使用integer替换字典,这就是为什么value_counts为数字2返回两个值,一个是数字,另一个是字符串,而不是:

df['specialty'].replace({
'1,2' : 2,
'1,3' : 3,
'1,4' : 4,
'1,5' : 5,
'1,6' : 6,
'2,6' : 2,
'3,6' : 3,
'1,2,3': 3,
'1,2,6' : 2,
'1,3,6' : 3,
'1,2,3' : 3,
'1,2,4' : 4,
'1,2,4,6' : 4,
'1,2,5' : 5
}

:

df['specialty'].replace({
'1,2' : '2',
'1,3' : '3',
'1,4' : '4',
'1,5' : '5',
'1,6' : '6',
'2,6' : '2',
'3,6' : '3',
'1,2,3': '3',
'1,2,6' : '2',
'1,3,6' : '3',
'1,2,3' : '3',
'1,2,4' : '4',
'1,2,4,6' : '4',
'1,2,5' : '5'
}

相关内容

  • 没有找到相关文章

最新更新