首先构建我的问题数据集的简化版本,这只是帮助创建一个样本,我手头只有最终的 nest_dict。意思是我没有单独的 dfs:
df1 = pd.DataFrame({'val':{'a': 1, 'b':2, 'c':3}})
df2 = pd.DataFrame({'val':{'a': 3, 'b':4, 'c':1}})
df3 = pd.DataFrame({'val':{'a': 2, 'b':1, 'c':4}})
dfs = [df1, df2, df3]
dates = ['2017-01-26','2017-02-03','2017-02-10']
nest_dict = {}
for date, d in zip(dates, dfs):
nest_dict[date] = d
我想将其转换为多索引数据框。
date1 a val1
b val2
c val3
date2 a val1
b val2
c val3
....
它基本上是一个以日期为键的数据框,它很容易成为一个面板,但由于它已被弃用,我该如何将其转换为多索引数据框? 我确实尝试了以下操作,但它不起作用:
d = {(key, item) for key, item in corr_SH50.items()}
TypeError: 'DataFrame' objects are mutable, thus they cannot be hashed
答案 0 :(得分:1)
用键连接:
pd.concat(dfs,keys=dates)
val
2017-01-26 a 1
b 2
c 3
2017-02-03 a 3
b 4
c 1
2017-02-10 a 2
b 1
c 4