我有一个多索引列数据。我希望保留现有索引,但将一个级别从多个索引列移到索引的子级别。
我想不出melt/stack/unstack/pivot的正确咒语是如何从我所拥有的转移到我想要的。Unstacking()把事情变成了一个系列,失去了原来的日期索引。
names = ['mike', 'matt', 'dave']
details = ['bla', 'foo', ]
columns = pd.MultiIndex.from_tuples((n,d) for n in names for d in details)
index = pd.date_range(start="2022-10-30", end="2022-11-3" ,freq="d", )
have = pd.DataFrame(np.random.randint(0,100, size = (5,6)), index=index, columns=columns)
have
want_columns = details
want_index = pd.MultiIndex.from_product([index, names])
want = pd.DataFrame(np.random.randint(0,100, size = (15,2)), index=want_index, columns=want_columns)
want

发布于 2022-10-26 09:16:18
将DataFrame.stack与level=0结合使用
print (have.stack(level=0))
bla foo
2022-10-30 dave 88 18
matt 49 55
mike 92 45
2022-10-31 dave 33 27
matt 53 41
mike 24 16
2022-11-01 dave 48 19
matt 94 75
mike 11 19
2022-11-02 dave 16 90
matt 14 93
mike 38 72
2022-11-03 dave 80 15
matt 97 2
mike 11 94https://stackoverflow.com/questions/74205291
复制相似问题