我正在阅读Excel工作表,我想读取某些列:第0列,因为它是行索引,第22:37列。现在我就是这样做的:
http
但我希望有更好的方法来做到这一点!我知道如果我做import pandas as pd
import numpy as np
file_loc = "path.xlsx"
df = pd.read_excel(file_loc, index_col=None, na_values=['NA'], parse_cols = 37)
df= pd.concat([df[df.columns[0]], df[df.columns[22:]]], axis=1)
我可以做到这一点,但对于大型数据集,这没有意义。
我也这样做了:
parse_cols=[0, 22,..,37]
但它会读取前15列,其长度为s = pd.Series(0)
s[1]=22
for i in range(2,14):
s[i]=s[i-1]+1
df = pd.read_excel(file_loc, index_col=None, na_values=['NA'], parse_cols = s)
。
答案 0 :(得分:23)
您可以使用这样的列索引(字母):
import pandas as pd
import numpy as np
file_loc = "path.xlsx"
df = pd.read_excel(file_loc, index_col=None, na_values=['NA'], parse_cols = "A,C:AA")
print(df)
parse_cols : int或list,默认无
- 如果为None,则解析所有列,
- 如果int则表示要解析的最后一列
- 如果整数列表则表示要解析的列号列表
- 如果字符串则表示以逗号分隔的列名和列范围列表(例如“A:E”或“A,C,E:F”)
答案 1 :(得分:12)
parse_cols
,而是使用usecols
即:
df = pd.read_excel(file_loc, index_col=None, na_values=['NA'], usecols = "A,C:AA")
答案 2 :(得分:4)
“ usecols”应该会有所帮助,使用列的范围(根据excel工作表,A,B ...等) 下面是示例
df = pd.read_excel(file_location,sheet_name='Sheet1', usecols="A,C,F")
df = pd.read_excel(file_location,sheet_name='Sheet1', usecols="A:F,H")
df = pd.read_excel(file_location,sheet_name='Sheet1', usecols="A:F,H,J:N")
df = pd.read_excel(file_location,sheet_name='Sheet1', usecols="A:N")