在Python Pandas中,如何获取一列,然后跳过几列,然后获得连续列

时间:2017-09-19 02:05:31

标签: python pandas dataframe

我将csv文件导入到一个名为df。

的数据框中
df = pd.read_csv('csvfile.csv')

df有8列,它们有名称A,B,C,D,E,F,G,H。然后我需要得到列B和列E:H,以及这些列的所有行。 我用了 {E}要将E列添加到H.但是还无法弄清楚如何获取B列,仍然在代码中使用df1 = df.loc[:,"E":"H"]。我想保留"E":"H"的原因是因为E,F,G,H的列名很长,我试图避免键入所有四个名字。 谢谢。

1 个答案:

答案 0 :(得分:1)

df.loc[:, list(df.columns[1]) + list(df.columns[4:])]

如果要自动查找列,可以使用

column_list = list(df.columns)
B_index = column_list.index('B')
E_index = column_list.index('E')
H_index = column_list.index('H')
df.loc[:, list(df.columns[B_index]) + list(df.columns[E_index:H_index])]

这是四行,但代码非常易读。

或者,如果您事先知道列的确切名称,最好将这些名称存储在列表中,然后使用

column_names = [
    'B',
    'E',
    'F',
    'G',
    'H'
]
df.loc[:, column_names]