这是一个关于调用 Pandas
read_excel
函数时两个操作发生的顺序的问题。 (尽管这也适用于其他 read_X
类型的函数,例如 read_csv
。)
read_excel
函数接受两个感兴趣的参数
skiprows
headers
在本例中,我将整数列表传递给
headers
以创建多重索引。
我的问题是,
skiprows
操作是否发生在headers
用于设置标题之前? (文档没有明确说明这一点。)
是的,当使用整数时,
skiprows
会跳过文件开头的行,与标题无关。例如,请参阅 read_csv
的文档:
skiprows int,int 或 Callable 列表,可选
文件开头要跳过的行号(0-索引)或要跳过的行数(int)。
如果可调用,则将根据行索引评估可调用函数,如果应跳过该行则返回 True,否则返回 False 否则。有效的可调用参数的一个例子是 lambda x: x 在 [0, 2] 中。
示例:
import io
pd.read_csv(io.StringIO('''1,2,3
4,5,6
7,8,9
10,11,12'''), skiprows=2, header=None)
0 1 2
0 7 8 9
1 10 11 12
pd.read_csv(io.StringIO('''1,2,3
4,5,6
7,8,9
10,11,12'''), skiprows=2, header=0)
7 8 9
0 10 11 12
是的,在 Pandas 中,使用 read_excel 函数时,跳行操作发生在设置标题之前(对于其他 read_X 函数,如 read_csv 也类似)。