我想用这种方式对我的数据帧应用一种热编码(理解这个问题并不重要):
train = pd.concat([train, pd.get_dummies(train['Canal_ID'])], axis=1, join_axes=[train.index])
train.drop([11,'Canal_ID'],axis=1, inplace = True)
train = pd.concat([train, pd.get_dummies(train['Agencia_ID'])], axis=1, join_axes=[train.index])
train.drop([1382,'Agencia_ID'],axis=1, inplace = True)
不幸的是,原始数据帧的值是数字,这就是为什么在获取dummies变量后,会有很多同名列。我怎样才能使它们独一无二?
最佳答案
您可以通过range
和shape
设置新列名:
df.columns = range(df.shape[1])
样品:
df = pd.DataFrame({'A':[1,2,3],
'B':[4,5,6],
'C':[7,8,9],
'D':[1,3,5],
'E':[5,3,6],
'F':[7,4,3]})
print (df)
A B C D E F
0 1 4 7 1 5 7
1 2 5 8 3 3 4
2 3 6 9 5 6 3
print (df.shape)
(3, 6)
df.columns = range(df.shape[1])
print (df)
0 1 2 3 4 5
0 1 4 7 1 5 7
1 2 5 8 3 3 4
2 3 6 9 5 6 3
关于python - 如何使数据框中的列唯一?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38161398/