# make a df with duplicate columns 'x'
df = pd.DataFrame({'x': range(5) , 'x':range(5), 'y':range(6, 11)}, columns = ['x', 'x', 'y'])
df
Out[495]:
x x y
0 0 0 6
1 1 1 7
2 2 2 8
3 3 3 9
4 4 4 10
# attempting to drop the first column according to the solution offered so far
df.drop(df.columns[0], axis = 1)
y
0 6
1 7
2 8
3 9
4 10
如您所见,两个Xs列都被删除了。
替代解决方案:
column_numbers = [x for x in range(df.shape[1])] # list of columns' integer indices
column_numbers .remove(0) #removing column integer index 0
df.iloc[:, column_numbers] #return all columns except the 0th column
x y
0 0 6
1 1 7
2 2 8
3 3 9
4 4 10
像这样放置多个列:
inplace=True
用于在数据帧本身中进行更改,而无需在数据帧的副本上删除列。如果需要保持原稿完整,请使用:如果有多个具有相同名称的列,那么到目前为止,这里给出的解决方案将删除所有列,这可能不是我们要查找的。如果试图删除除一个实例以外的重复列,则可能会出现这种情况。下面的示例说明了这种情况:
如您所见,两个Xs列都被删除了。 替代解决方案:
如您所见,这实际上只删除了第0列(第一个“x”)。
您可以删除
i
索引上的列,如下所示:如果在列中有重复的名称,那么它可能工作得很奇怪,为此,可以按新名称重命名要删除的列。或者您可以这样重新分配数据帧:
相关问题 更多 >
编程相关推荐