Python Pandas 库中的 stack 和 unstack 函数是什么。
Stack 和 unstack 函数用于重塑 pandas 库中的 DataFrame,以通过不同方式提取更多信息。
Stack
Pandas stack 用于将列级别堆叠到索引中。它返回一个具有多级索引的新 DataFrame 或 Series。stack 方法有两个参数:level 和 dropna。
level 参数用于将列轴堆叠到索引轴上,默认值为 1,我们可以提供字符串、列表和整数。dropna 用于删除结果 DataFrame/Series 中具有缺失值的行。默认值为 True,它接受布尔数据。
让我们举个例子,看看它是如何工作的。
示例
df = pd.read_json('E:\iris.json') # create a DataFrame using iris data set
df_stacked = df.stack(0) # stacked to level 0
print(df_stacked) # display the result解释
使用 iris 数据集,我们创建了一个 DataFrame,它只有一个级别 0。在下一步中,将该 DataFrame df 堆叠到索引级别。
输出
0 sepalLength 5.1 sepalWidth 3.5 petalLength 1.4 petalWidth 0.2 species setosa ... 149 sepalLength 5.9 sepalWidth 3 petalLength 5.1 petalWidth 1.8 species virginica Length: 750, dtype: object
上面输出块显示了堆叠的 DataFrame “df”,结果输出是一个具有 2 个级别(0 和 1)的 Series,Series 长度为 750。
Unstack
Unstack 也类似于 stack 方法,它返回一个 DataFrame,该 DataFrame 具有新的列标签级别。它有两个参数:level 和 fill_value。
level 参数接受整数、字符串或这些的列表,默认值为 1(1 是最后一个级别)。fill_value 用于填充空值,如果 unstack 产生任何缺失值。
示例
在此示例中,我们将采用上述堆叠的 DataFrame 并将其应用于 unstack 函数。
unstacked_df = df_stacked.unstack(level=0) print(unstacked_df)
解释
将上述示例中的堆叠 DataFrame 取消堆叠。此处级别为 0。结果输出 DataFrame 显示在下面的块中。
输出
0 1 2 3 4 5 6 7 \
sepalLength 5.1 4.9 4.7 4.6 5 5.4 4.6 5
sepalWidth 3.5 3 3.2 3.1 3.6 3.9 3.4 3.4
petalLength 1.4 1.4 1.3 1.5 1.4 1.7 1.4 1.5
petalWidth 0.2 0.2 0.2 0.2 0.2 0.4 0.3 0.2
species setosa setosa setosa setosa setosa setosa setosa setosa
8 9 ... 140 141 142 143 \
sepalLength 4.4 4.9 ... 6.7 6.9 5.8 6.8
sepalWidth 2.9 3.1 ... 3.1 3.1 2.7 3.2
petalLength 1.4 1.5 ... 5.6 5.1 5.1 5.9
petalWidth 0.2 0.1 ... 2.4 2.3 1.9 2.3
species setosa setosa ... virginica virginica virginica virginica
144 145 146 147 148 149
sepalLength 6.7 6.7 6.3 6.5 6.2 5.9
sepalWidth 3.3 3 2.5 3 3.4 3
petalLength 5.7 5.2 5 5.2 5.4 5.1
petalWidth 2.5 2.3 1.9 2 2.3 1.8
species virginica virginica virginica virginica virginica virginica
[5 rows x 150 columns]级别为 0 的取消堆叠的 DataFrame 具有 5 行和 150 列。使用这些 stack 和 unstack 函数,我们可以轻松地从 DataFrame 中提取数据,并且可以轻松地重塑多级 DataFrame。
数据结构
网络
关系数据库管理系统
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP