Python 获取数据框在Excel中显示的长度(例如,包括任何列级别)

Python 获取数据框在Excel中显示的长度(例如,包括任何列级别),python,pandas,xlsxwriter,Python,Pandas,Xlsxwriter,EDIT:本质上我需要一个与单级列索引和多索引列兼容的方法,该方法将返回列中的整数级数。 我正在一张工作表上将多个数据框写入Excel,并希望将开始行移到on位置,以避免覆盖任何数据 将熊猫作为pd导入 将numpy作为np导入 df=pd.DataFrame(np.random.randn(10,4),columns=[list('ABCD'),list('EFGH')])) 打印(len(df) len(df)将返回10;我如何获得包含的索引级别,以便返回值为12? len(df.colu

EDIT:本质上我需要一个与单级列索引和多索引列兼容的方法,该方法将返回列中的整数级数。

我正在一张工作表上将多个数据框写入Excel,并希望将
开始行
移到on位置,以避免覆盖任何数据

将熊猫作为pd导入
将numpy作为np导入
df=pd.DataFrame(np.random.randn(10,4),columns=[list('ABCD'),list('EFGH')]))
打印(len(df)
len(df)
将返回10;我如何获得包含的索引级别,以便返回值为12?

len(df.columns.levels)
仅在列为多索引时有效。这适用于我的一些数据帧,但不适用于所有数据帧。它们是单级和多索引的混合体

try except
块是最好的方法(捕捉单级数据帧的AttributeError),还是有更优雅的方法?

文档中提到了可以使用的属性级别

import pandas as pd
import numpy as np
df1 = pd.DataFrame(np.random.randn(10, 4), columns=[list('ABCD'), list('EFGH')])
print(df1.columns)
print(df1.columns.nlevels)
df2 = pd.DataFrame(np.random.randn(10, 4), columns=['A','B','C','D'])
print(df2.columns)
print(df2.columns.nlevels)
给予

MultiIndex(levels=[['A', 'B', 'C', 'D'], ['E', 'F', 'G', 'H']],
       labels=[[0, 1, 2, 3], [0, 1, 2, 3]])
2
Index(['A', 'B', 'C', 'D'], dtype='object')
1

这应该可以回答您有关要移动的行数的问题。

使用类似
length=len(df)+len(df.columns.levshape)的方法怎么样
?如果我没有误解,这可能会解决您的问题:@screenpaver.levshape对我来说是新的,但会对非多索引列产生AttributeError。@MateOrd我关心的是在我写出数据帧后知道正确的起始点。这将取决于列级别的数量。基本上,我需要一个与单索引列兼容的方法级别列索引和多索引列,它们将返回列中级别的整数。