python - 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
解决方案
看起来您正在尝试根据第 1 列(日期)和第 2 列(CPIAUCSL)进行切片。
df.iloc 仅对列和行 indexnumber 进行切片,而不对列名进行切片。要根据名称进行切片,您应该使用 df.loc。所以在你的最后一个例子中:
df1 = df.loc[:, ['date', 'CPIAUCSL']]
如果您可以提供更多关于您想要什么以及您的数据是什么样子的信息,我们可以为您提供更多帮助。
推荐阅读
- android-studio - Kotlin Coroutines,retrofit-2.6.1,网络响应 null
- mysql - 无法应用安全设置,安装时用户“root”@“localhost”的访问被拒绝?
- python - 如何以安全的方式退出 Python Azure Function?
- azure - Azure 应用服务计划 - 定价模型问题
- excel - 如何更改我的 VBA 代码以不使用选择?
- swift - 集合视图中的图像视图必须居中并快速适应
- python - 在 Python 中将全格式日期转换为年月格式
- sql - 尝试对 ERD 进行正向工程时出现错误 1064
- angular - 在范围外使用 ng-template
- azure - S3 和 Blob 存储之间的数据传输