我正在使用pandas.read_csv()读取excel .csv文件。我想阅读excel电子表格的2个单独的列范围,例如:列A:D和H:J,出现在最终的DataFrame中。我知道我可以在使用索引加载文件后执行此操作,但是我可以指定要加载的2个列范围吗?
我尝试过这样的事情......
usecols=[0:3,7:9]
我知道我可以列出每个列号,例如
usecols=[0,1,2,3,7,8,9]
但是我已经简化了有问题的文件,在我的真实文件中我有大量的行,所以我需要能够选择2个大范围才能读入...
答案 0 :(得分:3)
我不确定是否有一种官方的漂亮熊猫式的方式与大熊猫一起做。
但是,你可以这样做:
# 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)
答案 1 :(得分:2)
正如@jezrael所指出的,您可以使用numpy.r以更加蟒蛇和清晰的方式进行操作
import pandas as pd
import numpy as np
file_name = 'path/to/csv/file.csv'
df = pd.read_csv(file_name, usecols=np.r_[0:3, 7:9])
陷阱
当与names
结合使用时,请注意,熊猫允许为索引ie添加额外的列。对于CSV列1,2,3(3个项目),np.r_
必须为0:3
(4个项目)