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

chhqkbe1  于 2023-04-04  发布在  其他
关注(0)|答案(1)|浏览(150)

我使用了一个名为specialty的pandas列,它看起来像这样:

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()时,我得到:
我不明白为什么2-6里有两个人。

9avjhtql

9avjhtql1#

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

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'
}

相关问题