Python Pandas:如何根据日期组合或合并两个不同大小的数据框

尼可卡斯塔

我喜欢根据日期范围合并或组合两个不同大小的数据帧 df1 和 df2,例如:

df1:

Date        Open  High  Low
2021-07-01  8.43  8.44  8.22 
2021-07-02  8.36  8.4   8.28
2021-07-06  8.22  8.23  8.06
2021-07-07  8.1   8.19  7.98
2021-07-08  8.07  8.1   7.91
2021-07-09  7.97  8.11  7.92
2021-07-12  8     8.2   8
2021-07-13  8.15  8.18  8.06
2021-07-14  8.18  8.27  8.12
2021-07-15  8.21  8.26  8.06
2021-07-16  8.12  8.23  8.07

df2:

Day of month   Revenue   Earnings
01             45000     4000
07             43500     5000
12             44350     6000
15             39050     7000

结果应该是这样的:

组合:

Date        Open  High  Low   Earnings
2021-07-01  8.43  8.44  8.22  4000
2021-07-02  8.36  8.4   8.28  4000
2021-07-06  8.22  8.23  8.06  4000
2021-07-07  8.1   8.19  7.98  5000
2021-07-08  8.07  8.1   7.91  5000
2021-07-09  7.97  8.11  7.92  5000
2021-07-12  8     8.2   8     6000
2021-07-13  8.15  8.18  8.06  6000
2021-07-14  8.18  8.27  8.12  6000
2021-07-15  8.21  8.26  8.06  7000
2021-07-16  8.12  8.23  8.07  7000

Earnings 列是根据日期范围合并的,我如何在 python pandas 中执行此操作?

贝尼

尝试 merge_asof

#df1.date=pd.to_datetime(df1.date)
df1['Day of month'] = df1.Date.dt.day 
out = pd.merge_asof(df1, df2, on ='Day of month', direction = 'backward')
out
Out[213]: 
         Date  Open  High   Low  Day of month  Revenue  Earnings
0  2021-07-01  8.43  8.44  8.22           1    45000      4000
1  2021-07-02  8.36  8.40  8.28           2    45000      4000
2  2021-07-06  8.22  8.23  8.06           6    45000      4000
3  2021-07-07  8.10  8.19  7.98           7    43500      5000
4  2021-07-08  8.07  8.10  7.91           8    43500      5000
5  2021-07-09  7.97  8.11  7.92           9    43500      5000
6  2021-07-12  8.00  8.20  8.00          12    44350      6000
7  2021-07-13  8.15  8.18  8.06          13    44350      6000
8  2021-07-14  8.18  8.27  8.12          14    44350      6000
9  2021-07-15  8.21  8.26  8.06          15    39050      7000
10 2021-07-16  8.12  8.23  8.07          16    39050      7000

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Python Pandas-如何将具有两个不同列的两个数据框合并到两个列表列

如何基于一个公共列但内容不同来合并/扩展两个python pandas数据框?

如何在python中合并两个不同长度的数据框

Python(Pandas)如何以递增顺序合并2个具有不同日期的数据框?

如何根据pandas python中的条件在两个不同的数据帧之间进行列操作

Pandas(Python)-如何按两个日期列对熊猫数据框进行排序

Python Pandas 合并两个键上的两个数据框并获得总数

合并条件中来自两个不同数据框的两列,python

使用Pandas Python根据通用值合并两个数据框?

如何一次将两列与 python (pandas) 中的两个不同数据框进行比较?

通过循环合并两个不同的数据框(python)

Python Pandas根据日期条件写入两个不同的文件

在python中使用大小不同的两个数据框

Python,Pandas:比较两个数据框并组合返回

Python / Pandas-合并两个基于非索引列的数据框

如何使用Python3比较Linux中两个不同日期的文件大小

在Python中合并两个不规则数据框

Python:如何组合来自两个不同数据帧的特定列

根据Pandas Python中的两个条件选择数据框的行

如何使用python-pandas合并基于互信息的两个数据框?

如何使用Python合并或连接带有字符串的两个熊猫数据框

Python:如何合并两个值不唯一的数据框

两个日期之间的Python每周数据框

根据两个数据框的最小值创建一个数据框pandas python

如何合并两个不同的JSON(使用python)

Python数据框:根据条件合并两个数据框(熊猫)

Python:如何通过保留第一个数据框的信息来合并两个数据框?

如何在python pandas中按日期和时间合并2个数据框?

我在 Python 中有一个数据框问题,如何映射两个不同的数据框