【问题标题】:Inserting dictionary values in pandas column在熊猫列中插入字典值
【发布时间】:2018-06-30 21:33:26
【问题描述】:

C 是我在 pandas dataframe(df) 中的专栏。它由许多列表组成。

          C
  [ab ab bc abb]
  [ll li lo ll]

D是我的字典,如下。

D={'ab':0, 'bc':1, 'abb':2, 'll':3, 'li':4, 'lo':5}

现在,我想将字典的值分配给列表,为此,我使用下面提到的代码。

df.C= [D[item] for item in df.C]

在这里,我收到此错误:

TypeError: 列表索引必须是整数或切片,而不是 str。

感谢您的帮助。

【问题讨论】:

    标签: python pandas


    【解决方案1】:

    看起来你有一个空格分隔字符串的列表,所以你需要两个循环,而不是一个。试试这个:

    df.C = [[D[j] for j in i.split()] for i df.C]
    

    如果您必须处理丢失的密钥,请改用dict.get

    df.C = [[D.get(j, -1) for j in i.split()] for i df.C]
    

    -1 是一些默认值。

    【讨论】:

    • @Vic13 hmpphh .. 看着你的字符串看起来不太好。生菜和黑橄榄是如何分离的?
    • @AntonvBR 这是一个很好的观点。此输入没有经过很好的清理。
    • 当然,这个精美的印刷品不在问题之列,所以我想知道它是否值得打扰。
    • 不错的解决方案,列表推导比在 str 拆分后使用 apply 更具可读性,这是我认为的另一种方法。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-09-02
    • 2019-08-20
    • 2017-02-25
    • 2019-05-18
    • 2018-01-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多