【问题标题】:Mapping Data Frame Values to Dictionary Is Not Working将数据框值映射到字典不起作用
【发布时间】:2022-01-07 23:41:56
【问题描述】:

我有这样的数据框(dd)

|Month||Price|
1   55.96
6   381.16
7   825.80

我想将每一行中的月份值替换为相关月份。我建立 字典

R={'January': 1,'June': 6,'July': 7,'August': 8,'September': 9,'October': 10,'November': 11,'December': 12}

然后我用它来尝试替换

dd['Month']=dd["Month"].map(R)

但是当我打印出我的数据框时,我得到了这个作为输出:

Month Price
NaN   55.96
NaN   381.16
NaN   825.80

我不确定我为什么会得到 NaN。显然发生了一些事情,但我不知道是什么、为什么以及如何解决它。

我是 python 新手,所以还在摸索中。我在这个 q 中的格式可能是一个死的赠品哈哈。请低调解释:)

【问题讨论】:

    标签: python pandas dataframe dictionary


    【解决方案1】:

    因为你的月份字典键和值是相反的,它应该是这样的:

    R={1:'January',6:'June',7:'July'}
    

    然后就可以了:

    dd['Month']=dd["Month"].map(R)
    
    output> 
    
         month   Price
    0  January   55.96
    1     June  381.16
    2     July  825.80
    

    【讨论】:

    • 哇,多么简单的解决方案......不敢相信它这么简单。谢谢!
    【解决方案2】:

    试着翻转你的字典,让键是整数,值包含月份作为字符串。

    R = {1:'January', 6:'June', 7:'July', 8:'August', 9:'September', 10: 'October', 11: 'November', 12:'December'
    

    map 方法将键映射到值。你的字典刚刚倒过来了。

    此外,根据文档,如果缺少值,map 函数将返回 NaN。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-07-24
      • 1970-01-01
      • 2017-04-12
      • 1970-01-01
      • 1970-01-01
      • 2018-08-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多