Python ValueError:列的长度必须与键的长度相同
我在运行下面的代码时遇到问题 数据是我的数据帧。X是列车数据的列列表。L是带有数值的分类特征列表 我想对我的分类特征进行一个热编码。因此,我做如下工作。但是抛出了一个“ValueError:Columns必须与key长度相同”(最后一行)。经过长时间的研究,我仍然不明白为什么Python ValueError:列的长度必须与键的长度相同,python,pandas,dummy-variable,one-hot-encoding,Python,Pandas,Dummy Variable,One Hot Encoding,我在运行下面的代码时遇到问题 数据是我的数据帧。X是列车数据的列列表。L是带有数值的分类特征列表 我想对我的分类特征进行一个热编码。因此,我做如下工作。但是抛出了一个“ValueError:Columns必须与key长度相同”(最后一行)。经过长时间的研究,我仍然不明白为什么 def turn_dummy(df, prop): dummies = pd.get_dummies(df[prop], prefix=prop, sparse=True) df.drop(prop, ax
def turn_dummy(df, prop):
dummies = pd.get_dummies(df[prop], prefix=prop, sparse=True)
df.drop(prop, axis=1, inplace=True)
return pd.concat([df, dummies], axis=1)
L = ['A', 'B', 'C']
for col in L:
data_final[X] = turn_dummy(data_final[X], col)
这似乎是一个维度问题。情况如下: 假设我有一个
列表
,如下所示:
mylist = [0, 0, 0, 0]
它的长度是4。如果我想将新列表的元素1:1映射到该列表中:
otherlist=['a','b']
对于范围内的i(len(mylist)):
mylist[i]=其他列表[i]
显然,这将抛出一个索引器
,因为它试图获取otherlist
没有的元素
同样的情况也发生在这里。您正在尝试将字符串(len=1)插入长度为n>1的列。尝试:
data_final[X] = turn_dummy(data_final[X], L)
假设len(L)=行数在这种情况下X
是什么?