熊猫:合并具有不同时间频率的列

贾科莫

我有两个数据框:df_pdf_d

df_p包含8760个条目,它代表1年的记录和1小时的分辨率。date是日期时间列,hy是(一年中的)小时数,profile是一个值

                       hy   profile
date                               
1900-01-01 00:00:00     0  0.030908
1900-01-01 01:00:00     1  0.030053
1900-01-01 02:00:00     2  0.043185
1900-01-01 03:00:00     3  0.048040
1900-01-01 04:00:00     4  0.070803
1900-01-01 05:00:00     5  0.070948
...                  ...       ...
1900-12-31 19:00:00  8755  0.058093
1900-12-31 20:00:00  8756  0.030908
1900-12-31 21:00:00  8757  0.030053
1900-12-31 22:00:00  8758  0.043185
1900-12-31 23:00:00  8759  0.048040

df_d包含365个条目,它代表1年的记录和1天的分辨率。date是日期时间列,HDD是一整天有效的值。

date           HDD
1900-01-01     9.823750
1900-01-02     7.747917
1900-01-03     5.198750
1900-01-04     7.547500
1900-01-05     9.755000
               ...
1900-12-25     8.549129
1900-12-26     8.245625
1900-12-27     7.641417
1900-12-28     6.176417
1900-12-29     6.368917
1900-12-30     6.443333
1900-12-31     7.224583

我想做的是在df_p数据框中创建一个新列,该列对于一天中的每个小时分别具有的值HDD

以下是所需输出的示例:

                       hy   profile  HDD
date                               
1900-01-01 00:00:00     0  0.030908  9.823750
1900-01-01 01:00:00     1  0.030053  9.823750
1900-01-01 02:00:00     2  0.043185  9.823750
1900-01-01 03:00:00     3  0.048040  9.823750
1900-01-01 04:00:00     4  0.070803  9.823750
1900-01-01 05:00:00     5  0.070948  9.823750
...                  ...       ...
1900-12-31 19:00:00  8755  0.058093  7.224583
1900-12-31 20:00:00  8756  0.030908  7.224583
1900-12-31 21:00:00  8757  0.030053  7.224583
1900-12-31 22:00:00  8758  0.043185  7.224583
1900-12-31 23:00:00  8759  0.048040  7.224583

感谢您的帮助。

耶斯列尔

用途merge_asof

#if necessary convert to datetimes
df_d['date'] = pd.to_datetime(df_d['date'])
df_p.index = pd.to_datetime(df_p.index)

df = pd.merge_asof(df_p, df_d, left_index=True, right_on='date')
print (df)
      hy   profile       date       HDH
0      0  0.030908 1900-01-01  9.823750
0      1  0.030053 1900-01-01  9.823750
0      2  0.043185 1900-01-01  9.823750
0      3  0.048040 1900-01-01  9.823750
0      4  0.070803 1900-01-01  9.823750
0      5  0.070948 1900-01-01  9.823750
11  8755  0.058093 1900-12-31  7.224583
11  8756  0.030908 1900-12-31  7.224583
11  8757  0.030053 1900-12-31  7.224583
11  8758  0.043185 1900-12-31  7.224583
11  8759  0.048040 1900-12-31  7.224583

最后删除列date使用DataFrame.drop

df = df.drop('date', axis=1)

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在Python中合并具有不同时间频率的系列/数据框

如何合并具有不同时间戳密度的两个熊猫数据帧?

如何合并两个具有不同时间戳的熊猫

合并具有不同时间戳(不同时间间隔)的两个数据帧

用于创建具有不同时间戳和不同列映射的合并表的 SQL 查询

将时间序列合并为具有不同时间实例的单个图

合并两个具有不同时间粒度的时间序列

如何合并具有不同时间戳的两个不同数据帧?

SQL查询以合并两个具有不同时间戳的表作为索引

合并具有不同时间戳格式的日志文件

forTime循环中具有不同时间的setTimeout

具有不同时间间隔的系列的工具提示

具有不同时间跨度的闪烁按钮

SQL 输出 - 包括来自不同表的具有相同时间戳的列

合并/合并熊猫中具有不同频率时间序列索引的两个数据帧?

如何为熊猫数据帧的每一列应用具有不同时间常数的一阶过滤器?

将2个具有不同时间范围的类似查询合并为1个,而不是使用UNION ALL

Bash 命令对具有不同时间序列行的两个 csv 文件进行列合并

如何在python中的同一轴上绘制具有不同时间频率的两个时间序列数据?

Pandas:将具有相同日期不同时间的行合并为同一日期的单行(合并不同时间的部分数据以获得相同的身份)

熊猫:创建具有不同频率的熊猫日期时间序列

如何将具有不同时间格式的列统一为一种格式?

使用xts在R中绘制具有不同时间索引的多个时间序列

比较 R 中具有不同时间戳的时间序列

在不同时间间隔上具有不同公式的函数的导数

熊猫-同一列中的不同时间格式

带有两个不同时间索引的熊猫数据帧操作(除法乘法)

如何在熊猫fataframe中查找具有相同时间间隔的行

如何将具有不同时间轴的 2 个或多个 maesurements(csv) 绘制成一个带有熊猫的图形并绘图