现在给出一种选择除给定列以外所有列的方式:
需要使用 Pandas DataFrame 中 column 的方法与 Pandas DataFrame 中 Index 本身的一些属性来实现。
有如下数据框:
import pandas as pd
import numpy as np
df = pd.DataFrame(np.random.randn(5, 5), columns=['a', 'b', 'c', 'd', 'e'])
print(df)
输出如下:
a b c d e
0 -1.173622 -0.485457 -0.425674 2.238513 -0.638321
1 -1.826240 -0.944943 -0.252497 -0.550941 0.643042
2 -1.120656 -0.571153 1.167240 0.664764 0.458953
3 -0.640889 -0.967961 -0.325135 -1.204231 -0.991863
4 0.271848 -0.746035 -0.084216 -0.017725 -0.909407
此时,我们需要选择数据框中除了 ‘b’ 列以外的所有列。
可以通过 column 的方法结合 Index 属性(比如这里使用的 columns)来实现,选择两端之间的列,即先在 columns 属性中寻找选中列的位置索引,然后将其左侧以及右侧的列都选中,这可以通过切片实现。
cols_to_drop = ['b']
df.loc[:, df.columns.difference(cols_to_drop)]
输出结果如下:
a c d e
0 0.462680 -0.101197 -1.398227 -0.541607
1 0.159221 -0.251350 -1.160183 0.589136
2 0.727163 1.372272 -0.542677 -2.078538
3 -0.355510 -0.426792 -1.356868 -0.426590
4 -0.222319 -0.547917 2.075945 1.358210
也可以使用 drop 函数去掉对应的列:
df.drop('b', axis=1)
输出结果如下:
a c d e
0 0.462680 -0.101197 -1.398227 -0.541607
1 0.159221 -0.251350 -1.160183 0.589136
2 0.727163 1.372272 -0.542677 -2.078538
3 -0.355510 -0.426792 -1.356868 -0.426590
4 -0.222319 -0.547917 2.075945 1.358210
以上就是选择除了 Pandas 数据框架中的一个给定列之外的所有列的完整攻略,根据实际需求选择不同方法。