我想从一个以前的单层列扁平化 Dataframe 回到一个多索引 Dataframe 。
下面是一个例子:
import pandas as pd
# Create a sample dataframe with multi-indexed columns
df = pd.DataFrame({('A', 'a'): [1, 2, 3], ('A', 'b'): [4, 5, 6], ('B', 'a'): [7, 8, 9], ('B', 'b'): [10, 11, 12]})
print(df)
多索引 Dataframe :
A B
a b a b
0 1 4 7 10
1 2 5 8 11
2 3 6 9 12
比压平:
# Flatten the columns using the to_flat_index() method
df.columns = df.columns.to_flat_index()
print(df)
具有单层列的扁平 Dataframe :
(A, a) (A, b) (B, a) (B, b)
0 1 4 7 10
1 2 5 8 11
2 3 6 9 12
如何从具有单层列的扁平化 Dataframe 返回到多索引 Dataframe ?
1条答案
按热度按时间qyswt5oh1#
第一例
从上例中获取扁平化 Dataframe :
结果:
因为
df.columns = df.columns.to_flat_index()
方法返回一个单级别的新Index对象,这是将多级列名扁平化为元组的结果。因此,要从扁平化的 Dataframe 创建新的多索引 Dataframe ,需要提取原始多索引列名的元组,并将它们传递给
pd.MultiIndex.from_tuples
方法。第二箱
您可能会遇到不同的展平 Dataframe ,如以下示例所示:
结果是:
在这种情况下,您可以使用以下代码再次获取多索引 Dataframe :
这导致: