要将多层级(多索引)的数据转换为单层级索引,可以使用Pandas中的reset_index()方法。这个方法将多层级的行列索引变化为最基础的单层级数据。下面是示例代码:
import pandas as pd
# 创建有多层级索引的数据
data = {'color': ['blue', 'green', 'red', 'white', 'yellow'],
'size': ['S', 'S', 'M', 'L', 'XL'],
'gender': ['M', 'F', 'M', 'F', 'F'],
'age': [10, 20, 30, 40, 50],
'price': [1.2, 3.5, 6.7, 5.5, 3.2]}
df = pd.DataFrame(data)
multi_index = pd.MultiIndex.from_arrays([df['color'], df['size'], df['gender']])
df.index = multi_index
df.drop(['color', 'size', 'gender'], axis=1, inplace=True)
print(df)
输出的结果如下:
age price
blue S M 10 1.2
green S F 20 3.5
red M M 30 6.7
white L F 40 5.5
yellow XL F 50 3.2
在这个例子中,我们创建了一个多层级索引的DataFrame,其中行索引由三个不同的列组成。这里我们使用了from_arrays()方法创建了一个多层级索引,并分别用颜色,尺码和性别来表示行索引。
接下来,我们使用reset_index()方法将这个多层级DataFrame转换为单层级索引的DataFrame。下面是示例代码:
single_index = df.reset_index()
print(single_index)
输出的结果是:
level_0 level_1 level_2 age price
0 blue S M 10 1.2
1 green S F 20 3.5
2 red M M 30 6.7
3 white L F 40 5.5
4 yellow XL F 50 3.2
在这个例子中,我们使用了reset_index()方法将多层级索引转换为单层级索引,每一列的名称都是level_0,level_1,level_2等。这些列的值已经代表了原来的多层级索引。可以看到,我们已经成功地将多层级索引转换为单层级索引,并得到了一个易于使用和处理的DataFrame。
需要注意的是,reset_index()方法并不会对原DataFrame进行更改,而是返回了一个新的DataFrame。如果需要对原数据进行更新,需要手动使用赋值运算符将新的DataFrame赋给原DataFrame。
以上就是如何将多索引串联成单一索引的攻略和相关实例。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:在Pandas系列中把多索引串联成单一索引 - Python技术站