选择 2 个要加载的列范围 - pandas 中的 read_csv

mil*_*lsy 3 python pandas

我正在使用 pandas.read_csv() 读取 excel .csv 文件。我想读取 excel 电子表格的 2 个单独的列范围,例如列 A:D 和 H:J,以出现在最终的 DataFrame 中。我知道我可以在使用索引加载文件后执行此操作,但是我可以指定要加载的 2 个列范围吗?

我试过这样的事情......

usecols=[0:3,7:9]
Run Code Online (Sandbox Code Playgroud)

我知道我可以单独列出每个列号,例如

usecols=[0,1,2,3,7,8,9]
Run Code Online (Sandbox Code Playgroud)

但我已经简化了有问题的文件,在我的真实文件中,我有很多行,所以我需要能够选择 2 个大范围来读取...

小智 8

我不确定是否有一种官方的非常流行的方式来处理熊猫。

但是,你可以这样做:

# say you want to extract 2 ranges of columns
# columns 5 to 14 
# and columns 30 to 66

import pandas as pd

range1 = [i for i in range(5,15)]
range2 = [i for i in range(30,67)]
usecols = range1 + range2

file_name = 'path/to/csv/file.csv'

df = pd.read_csv(file_name, usecols=usecols)
Run Code Online (Sandbox Code Playgroud)

  • 您不需要列表理解。只需使用`usecols = list(range(5,15)) + list(range(30,67))` (2认同)