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。
感谢您的帮助。
答案 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
是一些默认值。