首页 > 解决方案 > 使用多个切片从 Pandas 数据框中选择

问题描述

假设我有一个包含 100 列和 10,000 行的数据框。我正在尝试使用单个列名和切片的组合(即'A1'、'C1':'C3'、'D5':'D57'等)来提取多个列。当我尝试这个时:

dfSelect = df.loc[:, 'A1', 'D5':'D7']

Python 返回

IndexingError: Too many indexers

如果我试试这个:

dfSelect = df.loc[:, ['A1', 'D5':'D7']]

Python 返回

 File "<ipython-input-2-1f38c6f634d4>", line 653
    dfSelect = df.loc[:, ['A1', 'D5' : 'D7']]
                                     ^
SyntaxError: invalid syntax

我知道运行多个 dfs - 每个要切片的项目一个 - 然后连接生成的数据帧将起作用,但如果我有 50 多列要提取它不是很有效。

我也尝试过运行一个循环,但失败了。

for i in fieldLst:
    dfSelect = pd.concat(df.loc[:, i])

TypeError: first argument must be an iterable of pandas objects, you passed an object of type "Series"

有什么我想念的方法吗?谢谢。

标签: pythonpandasdataframepandas-loc

解决方案


推荐阅读