我创建了一个包含2100和97AK等值的字典。我创建了一个数据框,将值映射到字典。找到具有混合数字和字母的值,但所有整数都返回为NaN。什么可能导致识别字典值失败?
abbreviations = {'1700':'Navy',
'2100': 'Army',
'5700': 'AF',
'9700': 'DOD',
'9736': 'NA',
}
import pandas as pd
import numpy as np
df = pd.read_excel("fun.xlsx")
columns = ['a', 'bc']
df1 = pd.DataFrame(df, columns=columns)
df1["b"] = df1["ac"].map(abbreviations)
print(df1)
答案 0 :(得分:0)
您的abbreviations
字典显示integers
存储为strings
(请注意代码中的周围单引号)。 2100
与'2100'
不符。
您需要在适当的位置使用整数填充该字典,或者将数据框值读取/转换为类型string
。见这里:Import pandas dataframe column as string not int