我想用这种方式对我的数据帧应用一种热编码(理解这个问题并不重要):

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变量后,会有很多同名列。我怎样才能使它们独一无二?

最佳答案

您可以通过rangeshape设置新列名:

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/

10-12 22:06