编辑:本质上,我需要一种与单级列索引和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),还是有一种更优雅的方法?
答案 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
这应该回答您有关要移动的行数的问题。