Pandas 多级表头 ValueError: Length mismatch 错误解析

在使用 Pandas 创建带有 MultiIndex 的多级表头时,你可能会遇到 ValueError: Length mismatch: Expected axis has 0 elements, new values have 3 elements 这样的错误。

错误原因:

这个错误出现的原因是你在创建一个空的 DataFrame 后,试图为其赋予一个多级表头,而此时 DataFrame 中没有任何列。

解决方案:

在创建 DataFrame 时,需要预先指定列数,或者在创建后使用 reindex 方法添加列。以下两种方法都可以解决这个问题:

方法一:创建 DataFrame 时指定列数pythonimport pandas as pd

创建一个空的DataFrame,并指定列数df = pd.DataFrame(columns=['A', 'B', 'C'])

创建新的多级表头header = pd.MultiIndex.from_tuples([('A', 'a'), ('A', 'b'), ('B', 'c')])

将新的多级表头赋值给DataFrame的columns属性df.columns = header

打印DataFrameprint(df)

方法二:使用 reindex 方法添加列pythonimport pandas as pd

创建一个空的DataFramedf = pd.DataFrame()

创建新的多级表头header = pd.MultiIndex.from_tuples([('A', 'a'), ('A', 'b'), ('B', 'c')])

使用 reindex 方法添加列df = df.reindex(columns=header)

打印DataFrameprint(df)

通过以上两种方法,你就可以成功创建一个带有多级表头的 DataFrame,并避免 ValueError: Length mismatch 错误。

Pandas 多级表头 ValueError 解决方案:Length mismatch 错误解析

原文地址: https://www.cveoy.top/t/topic/fPuP 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录