pandas.DataFrame.stack()是一个用于多级索引的有用方法。它的作用是将DataFrame的列“压缩”成一列。每个堆叠的列将与索引的最低级别合并成一个新的单级列索引。
pandas.DataFrame.stack()方法没有任何参数,因为它只有一个默认行为。可以在线官方文档中查看stack()
的完整参数列表。
在本部分中,我们将提供两个使用实例。
import pandas as pd
data = {
'One': ['A', 'B', 'C'],
'Two': [1, 2, 3],
'Three': ['X', 'Y', 'Z']
}
df = pd.DataFrame(data)
print(df)
new_df = df.stack()
print(new_df)
输出结果:
One Two Three
0 A 1 X
1 B 2 Y
2 C 3 Z
0 One A
Two 1
Three X
1 One B
Two 2
Three Y
2 One C
Two 3
Three Z
dtype: object
在此示例中,我们创建了一个DataFrame,并使用stack()方法创建了一个具有多级索引的Series对象。在这个新的Series中,索引的最低级别是输入DataFrame的每个列名称。通过上面的输出结果可以看出,压缩后的DataFrame比原来的DataFrame更容易理解和处理。
import pandas as pd
data = {
'One': ['A', 'B', 'C'],
'Two': [1, 2, 3],
'Three': ['X', 'Y', 'Z']
}
df = pd.DataFrame(data)
print(df)
new_df = df.stack().reset_index(drop=True)
print(new_df)
输出结果:
One Two Three
0 A 1 X
1 B 2 Y
2 C 3 Z
0 A
1 1
2 X
3 B
4 2
5 Y
6 C
7 3
8 Z
dtype: object
在这个示例中,我们使用stack()方法创建了一个多级索引的Series对象,并使用reset_index()方法将其转换为单键索引的DataFrame。附加的drop=True
参数用于删除原来添加的第二索引级别的标签,并总结了所有列成为一个单一的DataFrame索引。
pandas.DataFrame.stack()方法用于将DataFrame 的列压缩成一个Series对象,其中最低的级别作为每个堆栈的列名。在我们的两个示例中,我们通过输入 DataFrame 创建了多级索引 Series,并成功解压缩了这些Series,使我们的数据更易于理解和处理。它适用于各种对象,因此我们可以使用它在DataFrame上获取有关数据的某些信息。
本文链接:http://task.lmcjl.com/news/17749.html