不包括特定列的数据框列切片
dataframe column slices excluding specific columns
如果我不希望 select 特定且非顺序定位的列,我将如何对具有大量列的 pandas 数据帧进行切片?一种选择是删除特定的列,但我可以做类似的事情吗:
df = pd.DataFrame(np.random.randint(0,100,(2,10)),columns=list('abcdefghij'))
df.iloc[:,~[1,4,9]]
你可以这样做:
In [66]: cols2exclude = [1,4,9]
In [67]: df.iloc[:, df.columns.difference(df.columns[cols2exclude])]
Out[67]:
a c d f g h i
0 12 37 39 46 22 71 37
1 72 3 17 30 11 26 73
或:
In [68]: df.iloc[:, ~df.columns.isin(df.columns[cols2exclude])]
Out[68]:
a c d f g h i
0 68 49 90 9 48 36 26
1 6 72 98 49 44 10 36
如果我不希望 select 特定且非顺序定位的列,我将如何对具有大量列的 pandas 数据帧进行切片?一种选择是删除特定的列,但我可以做类似的事情吗:
df = pd.DataFrame(np.random.randint(0,100,(2,10)),columns=list('abcdefghij'))
df.iloc[:,~[1,4,9]]
你可以这样做:
In [66]: cols2exclude = [1,4,9]
In [67]: df.iloc[:, df.columns.difference(df.columns[cols2exclude])]
Out[67]:
a c d f g h i
0 12 37 39 46 22 71 37
1 72 3 17 30 11 26 73
或:
In [68]: df.iloc[:, ~df.columns.isin(df.columns[cols2exclude])]
Out[68]:
a c d f g h i
0 68 49 90 9 48 36 26
1 6 72 98 49 44 10 36