如何使数据框中的列唯一?

时间:2016-07-02 14:53:13

标签: python python-2.7 pandas unique

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

'app':                        { main: 'app.main.js',  defaultExtension: 'js' },

不幸的是,原始数据框的数量为数值,这就是为什么在获取虚拟变量之后,有很多具有相同名称的列。我怎样才能让它们与众不同?

3 个答案:

答案 0 :(得分:2)

试试这个:get_dummies有一个“前缀”方法

df = pd.DataFrame({'A': ['a', 'b', 'a'], 'B': ['b', 'a', 'c'],
                    'C': [1, 2, 3]})

pd.get_dummies(df, prefix=['col1', 'col2'])
   C  col1_a  col1_b  col2_a  col2_b  col2_c
0  1       1       0       0       1       0
1  2       0       1       1       0       0
2  3       1       0       0       0       1

答案 1 :(得分:1)

我会在列的原始id上附加一个随机数。

new_cols = train.columns
new_cols = new_cols.map(lambda x: "{}-{}".format(x, randint(0,100))
train.columns = new_cols

答案 2 :(得分:1)

您可以使用shape {/ 1> range设置新的列名称

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