我正在尝试删除数据框中的以下列:1,2,101:117,121:124,126。
到目前为止,我发现删除列的两种方法是:
df.drop(df.columns[2:6],axis=1)
df.drop(df.columns[[0,3,5]],axis=1)
如果我尝试
df.drop(df.columns[1,2,101:117,121:124],axis=1)
我收到“索引过多”错误
我也尝试过
a=df.drop(df.columns[[1,2]],axis=1)
b=a.drop(a.columns[99:115],axis=1)
c=b.drop(b.columns[102:105],axis=1)
d=c.drop(c.columns[103],axis=1)
但这并不是出于某些原因不会删除我想要的列。
答案 0 :(得分:3)
使用np.r_
进行切片:
import numpy as np
df.drop(columns=df.columns[np.r_[1, 2, 101:117, 121:124, 126]])
import pandas pd
df = pd.DataFrame(np.random.randint(1, 10, (2, 130)))
df.drop(columns=df.columns[np.r_[1, 2, 101:117, 121:124, 126]])
# 0 3 4 5 6 ... 120 124 125 127
#0 6 1 3 7 2 ... 8 7 2 6
#1 1 9 2 5 3 ... 7 3 9 4
答案 1 :(得分:0)
这应该有效:
df.drop(df.columns [[indexes_of_columns_you_want_to_delete]],轴= 1, inplace = True)
答案 2 :(得分:0)
请尝试以下操作:
import numpy as np
import pandas as pd
input_df.drop(input_df.columns[[np.r_[0,2:4]]],axis=1, inplace = True)