python - 将单索引 df 转换为多索引的更快方法(列成为索引)

标签 python pandas multi-index

我需要一种更快的方法将具有多列的标准二维数据框转换为仅具有单列的多索引数据框 - 请参阅下面的示例。

对于大型数据集,以下方法需要几分钟才能运行。我想有更好的方法;任何帮助表示赞赏。

cols = ['Tom','Jerry']
data_ = [['Level 58','Level 10'],['Level 59','Level 14'],['Level 60','Level 18']]
idx = pd.Index([datetime(2022,1,1), datetime(2022,1,2), datetime(2022,1,3)])
df = pd.DataFrame(data = data_, columns = cols, index=idx)
              Tom              Jerry
2022-01-01    Level 58         Level 10
2022-01-02    Level 59         Level 14
2022-01-03    Level 60         Level 18
pd.concat( \
  [pd.DataFrame(df[[i]].values, \
    index=pd.MultiIndex.from_tuples([(df[[i]].columns[0], x) for x in df.index], \
     names = ['name', 'date'])) \
       for i in df.columns])

                             0
name           date     
Tom      2022-01-01    Level 58
         2022-01-02    Level 59
         2022-01-03    Level 60
Jerry    2022-01-01    Level 10
         2022-01-02    Level 14
         2022-01-03    Level 18

Screenshot of current method outputs

最佳答案

尝试 unstack

out = df.unstack()#.to_frame('col')

关于python - 将单索引 df 转换为多索引的更快方法(列成为索引),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72639141/

相关文章:

python - Python 不写行的问题

python - 连接两个数据帧并从索引创建多索引

python - 多索引 - 获取每个第一个索引的第二个索引的最大值

Python 字典问题。如何对相似的字符串进行分组?

Python/Json 属性错误 : partially initialized module 'json' has no attribute

python - 在 Python 中将命名空间放入不同的 XML 标签中

pandas - 使用 pandas 将小时转换为秒

python - 从字典中获取键 : keys() vs 'keys for keys in dict.keys()'

python - 使用 MULTIINDEX 对数据帧进行排序

python - 是否可以在没有 DataFrame 的情况下查询 MultiIndex 本身?