我正在尝试用字典中的值替换数据框中的列的值。未修改的列看起来像这样(修剪)
>>> df.Class.head(10)
0 AA-
1 AA+
2 AA
3 BBB-
4 AAA
5 AA-
6 AA
7 A-
8 AA+
9 A+
Name: Class, dtype: object
我的字典如下:
>>> ratingsDict
{'AAA': 'Class AAA',
'AA+': 'Class AA',
'AA': 'Class AA',
'AA−': 'Class AA',
'A+': 'Class A',
'A': 'Class A',
'A−': 'Class A',
'BBB+': 'Class BBB',
'BBB': 'Class BBB',
'BBB−': 'Class BBB',
'BB+': 'Class BB',
'BB': 'Class BB',
'BB−': 'Class BB',
'B+': 'Class B',
'B': 'Class B',
'B−': 'Class B',
'C': 'Class C'}
通过使用以下代码,我试图将列值替换为字典中的值。
df.Class = df.Class.replace(ratingsDict)
除了以破折号(“-”)结尾的值之外,大多数值都适用。
0 AA-
1 Class AA
2 Class AA
3 BBB-
4 Class AAA
5 AA-
6 Class AA
7 A-
8 Class AA
9 Class A
Name: Class, dtype: object
任何想法可能会发生什么?谢谢。
答案 0 :(得分:1)
问题在于破折号“-”格式:字典“-”中的破折号与数据帧“-”中的破折号不同。
您使用的.csv文件中的字符可能以不同的格式表示。
直接在代码中创建字典时,破折号格式与数据框中表示的破折号格式相同:“-”。因此,您的代码可以正常工作。