【问题标题】:Turn multi-indexed series with different lengths and non-unique indexes into Dataframe将具有不同长度和非唯一索引的多索引系列转换为Dataframe
【发布时间】:2021-12-02 07:06:27
【问题描述】:
0  6    1689.306931
   6     345.198020
   6     226.217822
   6      34.574257
   6      14.000000
           ...     
3  6       1.077353
   6       1.116176
   6       1.078431
   6       1.049020
   6       0.980294

这是我的多索引系列my_df,我可以使用 my_df.loc[0] 访问每个相同索引

6    1689.306931
6     345.198020
6     226.217822
6      34.574257
6      14.000000
6      63.683168
6      60.158416
6      60.198020
6      18.811881
6      22.316832

dtype: float64

考虑到每个系列的长度不完全相同,如何将这个多索引系列转换为数据框而不会引发错误:

ValueError: 无法从重复的轴重新索引

pd.unstack() 抛出:

ValueError:索引包含重复条目,无法重塑

【问题讨论】:

    标签: pandas dataframe concatenation series


    【解决方案1】:

    尝试用groupby.cumcount枚举一层内的行,然后unstack:

    # your first level seem to be identical, just drop it
    (df.reset_index(level=1)           
       .set_index(df.groupby(level=0).cumcount(), append=True)
       .unstack()
    )
    

    【讨论】:

      猜你喜欢
      • 2016-09-12
      • 2013-01-05
      • 2014-02-04
      • 1970-01-01
      • 2017-02-01
      • 2021-08-28
      • 2018-06-02
      • 1970-01-01
      • 2021-11-22
      相关资源
      最近更新 更多