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 回答
冉冉说
TA贡献1877条经验 获得超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
一些默认值在哪里。
添加回答
举报
0/150
提交
取消