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

时间:2018-06-29 11:01:15

标签: python pandas xlsxwriter

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

我要在一张纸上将多个DataFrames输出到Excel,并希望将start_row移到另一个位置,以免覆盖任何数据。

import pandas as pd
import numpy as np
df = pd.DataFrame(np.random.randn(10, 4), columns=[list('ABCD'), list('EFGH')])
print(len(df)

len(df)将返回10; 我还如何获取包含的索引级别,以便返回值为12?

len(df.columns.levels)仅在列为多索引时才有效。这适用于我的某些数据框,但并非全部。它们是单级索引和多索引的组合。

try except块的最佳方法(为单级数据帧捕获AttributeError),还是有一种更优雅的方法?

1 个答案:

答案 0 :(得分:1)

MultiIndex的文档中提到了您可以使用的属性 nlevels

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

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