python - 从非唯一索引 Python Pandas 创建唯一的 MultiIndex

标签 python pandas

我有一个带有非唯一索引的 pandas DataFrame:

index = [1,1,1,1,2,2,2,3]

df = pd.DataFrame(data = {'col1': [1,3,7,6,2,4,3,4]}, index=index)

df
Out[12]: 
   col1
1     1
1     3
1     7
1     6
2     2
2     4
2     3
3     4

我想把它变成唯一的 MultiIndex 并保持顺序,就像这样:

        col1
  Ind2      
1 0        1
  1        3
  2        7
  3        6
2 0        2
  1        4
  2        3
3 0        4

我想 pandas 会有这样的功能,但还没有找到任何东西

最佳答案

你可以做一个groupby.cumcount在索引上,然后使用 set_index 将其作为新级别附加到索引:

df = df.set_index(df.groupby(level=0).cumcount(), append=True)

结果输出:

     col1
1 0     1
  1     3
  2     7
  3     6
2 0     2
  1     4
  2     3
3 0     4

关于python - 从非唯一索引 Python Pandas 创建唯一的 MultiIndex,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39398251/

相关文章:

python - 每年用 Pandas 绘制箱线图

python - 更改时间序列数据框中的日期 Python

python - 如何为flask注册自定义的http状态码?

python - Scrapy不抓取https?

python - 带有 seaborn 的 Jointplot 多索引列

python - 在 Pandas Dataframe 的排序列中查找缺失的数字

python - 如何为 NI VeriStand 共享库传递带有 ctypes 的数组

python - 变量列表在python中自动更新

python - Pandas 有条件创建数据框列 : based on multiple conditions max

pandas - 通过在 Pandas 中调用袖扣来改变身材大小