将时间序列数据框分解为一个具有多个变量的变量,每个变量都有年份的名称

我有以下时间序列日期框架:

       date_time                     system_load
0     2013-01-01 00:00:00.000000     599.2
1     2013-01-01 00:59:59.999999     759.2
2     2013-01-01 02:00:00.000001     954.5
3     2013-01-01 03:00:00.000000     190.9
4     2013-01-01 03:59:59.999999     465.2
...                          ...     ...
70123 2020-12-31 18:59:59.999999     355.9
70124 2020-12-31 20:00:00.000001     752.1
70125 2020-12-31 21:00:00.000000     928.5
70126 2020-12-31 21:59:59.999999     299.2
70127 2020-12-31 23:00:00.000001     478.5

我想要的是一个新的数据框,如下所示:

       Year2013     Year 2014   Year2015     Year2016   Year2017     Year2018   Year2019     Year 2020
0      599.2           ...       ...           ...       ...           ...       ...          355.9                                                                           
1      759.2           ...       ...           ...       ...           ...       ...          752.1  
2      954.5           ...       ...           ...       ...           ...       ...          928.5
3      190.9           ...       ...           ...       ...           ...       ...          299.2
4      465.2           ...       ...           ...       ...           ...       ...          478.5
...    ...             ...       ...           ...       ...           ...       ...          ...                                
8760   ...             ....      ...           ...       ...           ...       ...          ...
8761   NaN             NaN       NaN           ...       NaN           NaN        NaN         ...
...    NaN             NaN       NaN           ...       NaN           NaN        NaN         ...                   
8784   NaN             NaN       NaN           ...       NaN           NaN        NaN         ...

并考虑了闰年。任何帮助获得我想要的东西
提前致谢。

安德烈·凯斯利

我假设你有这个数据框:

                     date_time  system_load
0   2013-01-01 00:00:00.000000        599.2
1   2013-01-01 00:59:59.999999        759.2
2   2013-01-01 02:00:00.000001        954.5
3   2013-01-01 03:00:00.000000        190.9
4   2013-01-01 03:59:59.999999        465.2
5   2020-12-31 18:59:59.999999        355.9
6   2020-12-31 20:00:00.000001        752.1
7   2020-12-31 21:00:00.000000        928.5
8   2020-12-31 21:59:59.999999        299.2
9   2020-12-31 23:00:00.000001        478.5
10  2020-12-31 23:00:01.000001        400.0

然后:

df["date_time"] = pd.to_datetime(df["date_time"])
df["year"] = df["date_time"].dt.year
df["index"] = df.groupby("year").transform("cumcount")

print(
    df.pivot(columns="year", index="index", values="system_load").add_prefix(
        "Year"
    )
)

打印:

year   Year2013  Year2020
index                    
0         599.2     355.9
1         759.2     752.1
2         954.5     928.5
3         190.9     299.2
4         465.2     478.5
5           NaN     400.0

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何最好地将具有NA的两个因素分解为一个变量

如何更优雅地将具有一个键值对的dict分解为两个变量?

将变量折叠为一个具有保留变量名称的值的变量

将序列分解为词汇变量

在数据框中分别计算多个变量,变量名称包含一个序列

如何将具有默认值的无状态组件(反应)中的prop分解为一个变量,并在JSX中应用带有该变量的传播算子?

如何在IIB中创建一个变量,每个变量都有作用域?

如何在时间序列数据中创建变量,该变量为每个唯一年份值计算另一个变量中的1的数目

在数据框中使用现有变量名称创建一个新变量,在匹配每个变量列表中的非 NA 值时填充它

使用特定的变量名称时,对象分解为我提供了一个NaN值

将显示变量的第一个和最后一个值的数据框重塑为显示该变量的每个值的数据框

当每个变量都有自己的参数时,如何编写一个描述所有组合的多变量循环?

进程之间是否只有一个静态变量,或者每个都有自己的静态变量?

如何将保存一个列中的列表的数据框分解为R中的多个列?

每个变量在C中都有一个存储类吗?

如何在 Javascript 中创建一个数组,每个变量都有不同的值?

将一个数据框连接到另一个内容上,该数据框具有由分类变量汇总的相同内容

具有一个参数的多个变量的函数

向列表中的每个数据框添加一个与数据框名称相同的变量

为原始数据集中的变量的每个值创建一个具有一个案例的新数据集

重载一个类的构造函数,每个构造函数将具有不同的实例变量

将向量分解为变量并放弃所有权?

Javascript(Node.js)将json分解为现有变量

将字符变量转换为 R 中只有年份的日期变量

在一个具有不同数据类型的变量中设置多个值

Nginx将具有多个变量的正则表达式映射到一个变量

R:如何将具有重复变量(时间)的宽数据框重新编码为长数据?

Google App Script 将单个元素分解为具有多个元素的一维数组

从多个因子变量创建一个新的因子变量,所有因子变量都具有相同的水平