为什么在熊猫数据框中与dict进行键值匹配后出现NAN?

beyond_inifinity

我正在尝试通过与数据库中的字典进行键值匹配来添加新标签列。我用map函数来做到这一点。但是,新添加的列的值都具有NAN,这意味着匹配在我的代码中不起作用。我该如何纠正?为什么会这样呢?我打算通过将字典中的键与pandas数据框中的键进行匹配来添加新的标签列。

最少数据

import numpy as np
import pandas as pd

df = pd.DataFrame(data=[list('EEEIEEIIEI'), 
          ['AR', 'AUC', 'CA', 'CN', 'MX', 'MX', 'AR', 'IT', 'UK', 'RU'],
          ['ALBANIA', 'PAKISTN', 'UGANDA', 'FRANCE', 'USA', 'RUSSIA', 'COLOMBIA', 'KAZAK', 'KOREA', 'JAPAN'],
          [20230, 20220, 20120, 20230, 20230, 20220, 20230, 20120, 20130, 20329],
          list(np.random.randint(10, 100, 10)),
          list(np.random.randint(10, 100, 10))]
          ).T


df.columns =['ID', 'cty', 'cty_ptn', 'prod_code', 'Quantity1', 'Quantity2']
print(df)

这是我的代码:

my_dict={'20230':'Gas',
        '20220':'Water',
        '20210': 'Refined',
        '20120':'Oil',
        '20239':'Other'}

df['prod_label']=df['prod_code'].map(my_dict)

如何修复NAN新分配的列?任何想法?谢谢

ky

由于该列prod_code是a,因此int您必须在映射之前转换为strwith astype

my_dict={'20230':'Gas',
    '20220':'Water',
    '20210': 'Refined',
    '20120':'Oil',
    '20239':'Other'}

df['prod_label']=df['prod_code'].astype(str).map(my_dict)

  ID  cty   cty_ptn prod_code Quantity1 Quantity2 prod_label
0  E   AR   ALBANIA     20230        45        84        Gas
1  E  AUC   PAKISTN     20220        68        10      Water
2  E   CA    UGANDA     20120        48        45        Oil
3  I   CN    FRANCE     20230        11        93        Gas
4  E   MX       USA     20230        62        81        Gas
5  E   MX    RUSSIA     20220        27        49      Water
6  I   AR  COLOMBIA     20230        55        97        Gas
7  I   IT     KAZAK     20120        32        93        Oil
8  E   UK     KOREA     20130        63        88        NaN
9  I   RU     JAPAN     20329        99        39        NaN

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

多次匹配后合并熊猫数据框

来自分类Dev

在对数据框进行排序时,为什么在没有NaN值的情况下为什么会出现“ TypeError:乱序类型:str()<float()”?

来自分类Python

我为什么要在熊猫中复制数据框

来自分类Dev

为什么“&=”会在熊猫数据框中插入?

来自分类Dev

为什么在熊猫数据框列中应用更改dtype

来自分类Dev

为什么熊猫数据框将所有数据解释为 NaN?

来自分类Dev

清理熊猫数据框中的dict列

来自分类Dev

为什么在按列的值对数据框进行排序后,R中的plot()不能反映数据?

来自分类Dev

在熊猫数据框中替换nan

来自分类Dev

为什么熊猫数据框会在“日期”上出现关键错误?

来自分类Dev

在熊猫数据框中匹配(fuzzywuzzy)

来自分类Dev

计算熊猫数据框中的匹配组合

来自分类Dev

使用日期比较条件对非NAN值的熊猫数据框中的值进行计数

来自分类Dev

如何从json文件中读取键值对作为熊猫数据框?

来自分类Dev

在熊猫数据框中删除空值后出现键错误

来自分类Dev

在熊猫数据框中第一次出现条件后删除所有行

来自分类Dev

如何使用熊猫中列的后三个整数对数据框进行排序

来自分类Dev

熊猫数据框。为什么显示的数据与存储的数据不同?

来自分类Dev

根据Spark数据框中的键值进行过滤

来自分类Dev

为什么熊猫数据帧中浮点值的这种串联给出了 NaN 输出?

来自分类Dev

为什么在数据框上使用中位数的fillna仍然在熊猫中留下Na / NaN?

来自分类Dev

根据匹配的行数据在熊猫中创建新的数据框

来自分类Dev

为什么使用pd.Dataframe()创建数据框并手动设置索引时会出现NaN?

来自分类Dev

尝试在Pandas数据框中添加列时,为什么会得到np.NaN值?

来自分类Dev

为什么在此熊猫数据框分配中丢失9个值?

来自分类Dev

为什么在熊猫数据框中应用有时并不比for循环快?

来自分类Dev

他们为什么熊猫将数据框中的int值转换为float?

来自分类Dev

为什么我在熊猫中得到一个空的数据框?

来自分类Dev

数据框熊猫(NaN列)中的条件和条件

Related 相关文章

  1. 1

    多次匹配后合并熊猫数据框

  2. 2

    在对数据框进行排序时,为什么在没有NaN值的情况下为什么会出现“ TypeError:乱序类型:str()<float()”?

  3. 3

    我为什么要在熊猫中复制数据框

  4. 4

    为什么“&=”会在熊猫数据框中插入?

  5. 5

    为什么在熊猫数据框列中应用更改dtype

  6. 6

    为什么熊猫数据框将所有数据解释为 NaN?

  7. 7

    清理熊猫数据框中的dict列

  8. 8

    为什么在按列的值对数据框进行排序后,R中的plot()不能反映数据?

  9. 9

    在熊猫数据框中替换nan

  10. 10

    为什么熊猫数据框会在“日期”上出现关键错误?

  11. 11

    在熊猫数据框中匹配(fuzzywuzzy)

  12. 12

    计算熊猫数据框中的匹配组合

  13. 13

    使用日期比较条件对非NAN值的熊猫数据框中的值进行计数

  14. 14

    如何从json文件中读取键值对作为熊猫数据框?

  15. 15

    在熊猫数据框中删除空值后出现键错误

  16. 16

    在熊猫数据框中第一次出现条件后删除所有行

  17. 17

    如何使用熊猫中列的后三个整数对数据框进行排序

  18. 18

    熊猫数据框。为什么显示的数据与存储的数据不同?

  19. 19

    根据Spark数据框中的键值进行过滤

  20. 20

    为什么熊猫数据帧中浮点值的这种串联给出了 NaN 输出?

  21. 21

    为什么在数据框上使用中位数的fillna仍然在熊猫中留下Na / NaN?

  22. 22

    根据匹配的行数据在熊猫中创建新的数据框

  23. 23

    为什么使用pd.Dataframe()创建数据框并手动设置索引时会出现NaN?

  24. 24

    尝试在Pandas数据框中添加列时,为什么会得到np.NaN值?

  25. 25

    为什么在此熊猫数据框分配中丢失9个值?

  26. 26

    为什么在熊猫数据框中应用有时并不比for循环快?

  27. 27

    他们为什么熊猫将数据框中的int值转换为float?

  28. 28

    为什么我在熊猫中得到一个空的数据框?

  29. 29

    数据框熊猫(NaN列)中的条件和条件

热门标签

归档