在pandas列中插入字典值

时间:2018-06-30 21:33:26

标签: python pandas

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。

感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

好像您有一个以空格分隔的字符串列表,因此您需要两个循环,而不是一个循环。尝试以下方法:

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是一些默认值。