我需要一种更快的方法将具有多列的标准二维数据框转换为仅具有单列的多索引数据框 - 请参阅下面的示例。
对于大型数据集,以下方法需要几分钟才能运行。我想有更好的方法;任何帮助表示赞赏。
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
最佳答案
尝试 unstack
out = df.unstack()#.to_frame('col')
关于python - 将单索引 df 转换为多索引的更快方法(列成为索引),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72639141/