Python 将字典值映射到数据帧时出错

Python 将字典值映射到数据帧时出错,python,pandas,dataframe,dictionary,Python,Pandas,Dataframe,Dictionary,我正在尝试将一些值从字典映射到数据帧。数据框中有一个名为“月”的列,其中的值为1-12。我的字典将数字月份值与其名称相等,例如1:January 当我尝试下面的代码时,我得到了NaN的,不知道为什么 我希望将月份名称替换为数字等价项,但只返回NaN的。有人能帮忙吗?您需要在字典的列和键中输入相同类型的数据 匹配字符串的解决方案: 将列强制转换为字符串,因为字典中键中的字符串: month_dict = {"1" : "January", "2" : "February", "3" : "Ma

我正在尝试将一些值从字典映射到数据帧。数据框中有一个名为“月”的列,其中的值为1-12。我的字典将数字月份值与其名称相等,例如1:January

当我尝试下面的代码时,我得到了NaN的,不知道为什么


我希望将月份名称替换为数字等价项,但只返回NaN的。有人能帮忙吗?

您需要在字典的列和键中输入相同类型的数据


匹配字符串的解决方案:

将列强制转换为字符串,因为字典中键中的字符串:

month_dict = {"1" : "January", "2" : "February", "3" : "March", "4" : "April", 
              "5" : "May" , "6" : "June", "7" : "July", "8" : "August", 
              "9" : "September", "10" : "October" ,"11" : "November","12" : "December"}

df['month'] = df['month'].astype(str).map(month_dict)

匹配整数的解决方案:

month_dict = {int(k):v for k, v in month_dict.items()}
print (month_dict)
{1: 'January', 2: 'February', 3: 'March', 4: 'April', 5: 'May', 6: 'June', 
 7: 'July', 8: 'August', 9: 'September', 10: 'October', 11: 'November', 12: 'December'}

df['month'] = df['month'].map(month_dict)
将字典中的键转换为整数:

month_dict = {int(k):v for k, v in month_dict.items()}
print (month_dict)
{1: 'January', 2: 'February', 3: 'March', 4: 'April', 5: 'May', 6: 'June', 
 7: 'July', 8: 'August', 9: 'September', 10: 'October', 11: 'November', 12: 'December'}

df['month'] = df['month'].map(month_dict)

谢谢你澄清这一点!你能解释一下这行代码吗:month_dict={int(k):v代表k,v代表month_dict.items()}print(month_dict)是我分配给每个月的整数值吗?这段代码是只声明k是整数还是同时声明k和v?@AndrewAndreas-调用它并简单地循环每个键:字典的值,将键转换为整数-输出是另一个字典。如果您的问题得到了回答,请通过单击该答案左侧的灰色复选框将其切换为绿色来接受答案。它有助于社区。谢谢。对不起,我不知道灰色勾号,但我现在已经知道了。再次感谢你的帮助!真的很感激