获取出现在 Excel 中的数据框长度(例如,包括任何列级别)
Get length of dataframe as it appears in Excel (eg. including any column levels)
编辑:本质上我需要一种与单级列索引和多索引列兼容的方法,它将 return 列中的整数级别。
我正在将多个 DataFrame 写到单个 sheet 上的 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)
将 return 10; 我怎样才能同时包含索引级别,以便 return 值为 12?
len(df.columns.levels)
仅在列是多索引时才有效。这适用于我的一些数据框,但不是全部。它们是单级和多级索引的混合体。
try except
块是最好的方法(捕获单级数据帧的 AttributeError),还是有更优雅的方法?
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
这应该可以回答您有关要移动的行数的问题。
编辑:本质上我需要一种与单级列索引和多索引列兼容的方法,它将 return 列中的整数级别。
我正在将多个 DataFrame 写到单个 sheet 上的 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)
将 return 10; 我怎样才能同时包含索引级别,以便 return 值为 12?
len(df.columns.levels)
仅在列是多索引时才有效。这适用于我的一些数据框,但不是全部。它们是单级和多级索引的混合体。
try except
块是最好的方法(捕获单级数据帧的 AttributeError),还是有更优雅的方法?
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
这应该可以回答您有关要移动的行数的问题。