【问题标题】:ValueError: cannot handle a non-unique multi-indexValueError:无法处理非唯一的多索引
【发布时间】:2021-03-05 07:25:04
【问题描述】:

我正在尝试将 2 个数据帧与轴 = 1 上的分层索引连接起来,每个数据帧用于由四个季度(03、06、09、12)组成的不同年份。只是给你一个想法,以下是 2018 年的:

        201803                     | 201806                     | 201809 | 201812
        Open     Close     Adjust  | Open     Close     Adjust  | ...    | ...                  
AAPL    123.00   124.00    124.00  | 125.00   126.00    126.00  | ...    | ...

这些数据帧在 2 个级别上有一个分层索引。当我尝试连接 2018 和 2019 时,它不起作用,在标题中显示错误。这看起来像重复的索引(非唯一),但事实并非如此:如果我打印一级索引,我会看到 2018 年的 [201803, 201806, 201809, 201812] 和 2019 年的 [201903, 201906, 201909, 201912] . 如果我使用 ignore_index=True 它可以工作,但是层次索引会丢失。为了连接,我使用以下代码(my_dict 是数据帧字典):

df_full_years = pd.concat([my_dict["2018"], my_dict["2019"]], axis=1)

此外,之前我已经创建了连接每年季度的数据框,它已经奏效了。知道为什么即使索引是唯一的它也不起作用?

【问题讨论】:

    标签: pandas dataframe multi-index


    【解决方案1】:

    我的错误:用代码计算索引后:

    df.columns.value_counts()
    

    我发现问题出在索引级别 1,而不是索引级别 0。级别 1 有 100 多个项目,其中一个在我正在处理的 json 文件中重复。 我刚刚删除了重复的索引,现在它可以正常工作了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-11-06
      • 2022-07-26
      • 2022-06-16
      • 2016-07-03
      • 1970-01-01
      • 2016-09-12
      • 2018-09-22
      • 2017-12-06
      相关资源
      最近更新 更多