要将DataFrame的二级列索引合并成单个列索引,可以使用pandas库中的stack()
函数和reset_index()
函数。
stack()
函数用于将DataFrame的列索引转换为行索引,将二级列索引转换为多级行索引。
reset_index()
函数用于将行索引转换为列索引,并重置行索引。
下面是具体的步骤:
import pandas as pd
data = {'A': [1, 2, 3], 'B': [4, 5, 6]}
columns = pd.MultiIndex.from_tuples([('C', 'X'), ('C', 'Y')])
df = pd.DataFrame(data, columns=columns)
stack()
函数将二级列索引转换为多级行索引:df_stacked = df.stack()
reset_index()
函数将行索引转换为列索引,并重置行索引:df_merged = df_stacked.reset_index()
最终,df_merged
将是一个合并了二级列索引的DataFrame,其中包含一个单个的列索引。
这是一个示例的完整代码:
import pandas as pd
data = {'A': [1, 2, 3], 'B': [4, 5, 6]}
columns = pd.MultiIndex.from_tuples([('C', 'X'), ('C', 'Y')])
df = pd.DataFrame(data, columns=columns)
df_stacked = df.stack()
df_merged = df_stacked.reset_index()
print(df_merged)
输出结果如下:
level_0 level_1 C
0 0 X 1
1 0 Y 4
2 1 X 2
3 1 Y 5
4 2 X 3
5 2 Y 6
在这个例子中,原始的二级列索引('C', 'X')
和('C', 'Y')
被合并成了单个的列索引C
。
领取专属 10元无门槛券
手把手带您无忧上云