我取了一个熊猫栏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'
}