在 pandas 中使用 stack() 和 unstack() 函数重塑 dataframe
pandas 是 python 中的高级数据分析工具或包扩展。当我们在 sql 表、电子表格或异构列中有数据时,强烈建议使用 pandas。
本文探讨了 pandas 中堆栈和取消堆栈的基本概念。在 pandas 中,stacking 和 unstacking 被广泛用于改变正在考虑的 dataframe 的形状。
让我们看看这个方法的实际效果。首先,我们将创建一个虚拟 dataframe dates_data
以及几行。
import pandas as pd
index = pd.date_range("2013-1-1", periods=100, freq="30min")
dates_data = pd.dataframe(data=list(range(100)), columns=["value"], index=index)
dates_data["value2"] = "alpha"
dates_data["value2"].loc[0:10] = "beta"
上面的代码块创建了一个 dataframedates_data
,其中包含日期和名为 value
和 value2
的两列。查看数据中的条目,我们使用以下代码:
print(dates_data)
输出:
value value2
2013-01-01 00:00:00 0 beta
2013-01-01 00:30:00 1 beta
2013-01-01 01:00:00 2 beta
2013-01-01 01:30:00 3 beta
2013-01-01 02:00:00 4 beta
... ... ...
2013-01-02 23:30:00 95 alpha
2013-01-03 00:00:00 96 alpha
2013-01-03 00:30:00 97 alpha
2013-01-03 01:00:00 98 alpha
2013-01-03 01:30:00 99 alpha
正如我们所看到的,我们有 100 个不同的条目,每个条目在 30 分钟的间隔后设置的时间相同。
此外,还创建了两个名为 value
和 value2
的附加列,其中我们将一些值设置为数字,而将其他值设置为 alpha
或 beta
。
pandas 中的 stack()
和 unstack()
函数
我们可以借助 pandas 中名为 stack()
和 unstack()
的两个函数来更改名为 dates_data
的 dataframe。这个函数可以帮助我们改变 dataframe 的方向,使行变成列,列相应地变成行。
我们将尝试将 dataframe 中的 value
和 value2
更改为行,并将其中的值更改为行中的条目。
使用 unstack()
函数来改变我们的 dataframe
命令:
dates_data = dates_data.unstack()
print(dates_data)
输出:
value 2013-01-01 00:00:00 0
2013-01-01 00:30:00 1
2013-01-01 01:00:00 2
2013-01-01 01:30:00 3
2013-01-01 02:00:00 4
...
value2 2013-01-02 23:30:00 alpha
2013-01-03 00:00:00 alpha
2013-01-03 00:30:00 alpha
2013-01-03 01:00:00 alpha
2013-01-03 01:30:00 alpha
length: 200, dtype: object
现在,我们已经成功地改变了我们的数据,现在我们将列作为数据中的行条目。
使用 unstack()
函数来改变我们的 dataframe
命令:
dates_data = dates_data.stack()
print(dates_data)
输出:
2013-01-01 00:00:00 value 0
value2 beta
2013-01-01 00:30:00 value 1
value2 beta
2013-01-01 01:00:00 value 2
...
2013-01-03 00:30:00 value2 alpha
2013-01-03 01:00:00 value 98
value2 alpha
2013-01-03 01:30:00 value 99
value2 alpha
length: 200, dtype: object
列值现在在我们的 dataframe 中堆叠为行。
因此,借助 pandas 中的 unstacking 技术
,我们可以根据需要在需要时有效地过滤数据,并转换 dataframe 的外观,以便以更好的方式可视化数据。
转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处
本文地址:
相关文章
pandas dataframe dataframe.shift() 函数
发布时间:2024/04/24 浏览次数:133 分类:python
-
dataframe.shift() 函数是将 dataframe 的索引按指定的周期数进行移位。
python pandas.pivot_table() 函数
发布时间:2024/04/24 浏览次数:82 分类:python
-
python pandas pivot_table()函数通过对数据进行汇总,避免了数据的重复。
pandas read_csv()函数
发布时间:2024/04/24 浏览次数:254 分类:python
-
pandas read_csv()函数将指定的逗号分隔值(csv)文件读取到 dataframe 中。
pandas 多列合并
发布时间:2024/04/24 浏览次数:628 分类:python
-
本教程介绍了如何在 pandas 中使用 dataframe.merge()方法合并两个 dataframes。
pandas loc vs iloc
发布时间:2024/04/24 浏览次数:837 分类:python
-
本教程介绍了如何使用 python 中的 loc 和 iloc 从 pandas dataframe 中过滤数据。
在 python 中将 pandas 系列的日期时间转换为字符串
发布时间:2024/04/24 浏览次数:894 分类:python
-
了解如何在 python 中将 pandas 系列日期时间转换为字符串