Pandas按索引删除列

Rom*_*kar 7 python pandas

假设我有一个像这样的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
Run Code Online (Sandbox Code Playgroud)

我想删除第二'b'列.如果我只使用del语句,它将删除两'b'列:

>>> del df['b']
>>> df
   a
0  1
1  4
2  7
Run Code Online (Sandbox Code Playgroud)

我可以逐个选择列.iloc[]并重新分配DataFrame,但是如何只删除第二'b'列,例如通过索引?

Puf*_*GDI 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
Run Code Online (Sandbox Code Playgroud)

或者只是针对这种情况

df = df.ix[:, 0:2]
Run Code Online (Sandbox Code Playgroud)

但我认为还有其他更好的方法.