我正在读取 Excel 工作表,并且想要读取某些列:第 0 列(因为它是行索引)和第 22:37 列。现在这就是我所做的:
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]
我可以做到,但对于大型数据集来说这是没有意义的。
我也这样做了:
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)
但它读取前 15 列,即长度s
.
您可以像这样使用列索引(字母):
import pandas as pd
import numpy as np
file_loc = "path.xlsx"
df = pd.read_excel(file_loc, index_col=None, na_values=['NA'], usecols="A,C:AA")
print(df)
对应文档 https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.read_excel.html:
usecols : int、str、类列表或可调用默认值 None
-
如果没有,则解析所有列。
-
如果是 str,则表示以逗号分隔的 Excel 列字母和列范围列表(例如“A:E”或“A,C,E:F”)。范围包括双方。
-
如果是 int 列表,则表示要解析的列号列表。
-
如果是字符串列表,则表示要解析的列名列表。
0.24.0 版本中的新增功能。
-
如果可调用,则根据它评估每个列名称,并在可调用返回 True 时解析该列。
根据上述行为返回列的子集。
0.24.0 版本中的新增功能。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)