假设我有一个像这样的DataFrame:
>>> df = pd.DataFrame([[1,2,3], [4,5,6], [7,8,9]], columns=['a','b','b'])
>>> df
a b b
0 1 2 3
1 4 5 6
2 7 8 9
我想删除第二个'b'
列。如果我只使用del
语句,则会删除'b'
列:
>>> del df['b']
>>> df
a
0 1
1 4
2 7
我可以使用.iloc[]
逐列选择并重新分配DataFrame,但如何只删除第二个'b'
列,例如按索引?
答案 0 :(得分:6)
df = df.drop(['b'], axis=1).join(df['b'].ix[:, 0:1])
>>> df
a b
0 1 2
1 4 5
2 7 8
或仅针对此案例
df = df.ix[:, 0:2]
但我认为还有其他更好的方法。