首页 > 解决方案 > Select columns by (iloc) name in pandas

问题描述

Trying to get the contents of a dataframe to filter by name

X = df.iloc[108:, 1:48]

y = df.iloc[108:, -1]

#108 to just shy of last

#training
tx = X.iloc[0:int(split), 1:48]

df1 = df.iloc[:, ['date', 'CPIAUCSL']]

doesn't work

File "<ipython-input-77-c23d3211e2bf>", line 51 df1 = df.loc[:, ['date', 'CPIAUCSL']]df1 = df.loc[:, ['date', 'CPIAUCSL']] ^ SyntaxError: invalid syntax –

yet

df1 = df.iloc[:, [1, 2]]

produces

    date    CPIAUCSL
0   1991-01-31  134.700
1   1991-02-28  134.800
2   1991-03-31  134.800

标签: pythonpandas

解决方案


看起来您正在尝试根据第 1 列(日期)和第 2 列(CPIAUCSL)进行切片。

df.iloc 仅对列和行 indexnumber 进行切片,而不对列名进行切片。要根据名称进行切片,您应该使用 df.loc。所以在你的最后一个例子中:

df1 = df.loc[:, ['date', 'CPIAUCSL']]

如果您可以提供更多关于您想要什么以及您的数据是什么样子的信息,我们可以为您提供更多帮助。


推荐阅读