合并 Python 中的两个 Dataframes,从一个 Dataframe 到另一个 Dataframe 的线性插值日期
Merging two Dataframes in Python, linear interpolating Dates from one Dataframe to the other
我有 2 个不同的数据框。一个是包含日期和值的 "Values" 列表。第二个数据框是日期数据框,位于数据框 1 的日期之间。我想合并 2 个数据框并将数据框 1 中的值插入数据框 2 中的值。
我尝试了以下方法:
sample_final= sample_set_1.merge(sample_set_2, how='right').set_index('Maturity').interpolate()
但是没用!我在循环!
感谢任何帮助!
谢谢
Maturity DF
2019-04-11 1.0
2019-04-12 0.999933
2019-04-15 0.999732
2019-04-16 0.9996649999999999
2019-04-23 0.9991969999999999
2019-04-29 0.9987959999999999
2019-05-06 0.9983290000000001
2019-05-15 0.9977290000000001
2019-06-17 0.995532
2019-07-15 0.99369
2019-08-15 0.991663
2019-09-16 0.989582
2019-10-15 0.987725
2019-11-15 0.985764
2019-12-16 0.98383
2020-01-15 0.9819899999999999
2020-02-18 0.979935
2020-03-16 0.9783209999999999
2020-04-15 0.97655
2020-07-15 0.971353
2020-10-15 0.96631
2021-04-15 0.9568610000000001
2022-04-19 0.938263
2023-04-17 0.9198
2024-04-15 0.9006190000000001
Dataframe2:
Maturity
2019-04-17
2019-04-17
2019-04-17
2019-04-17
2019-04-17
2019-04-17
2019-04-17
2019-04-17
2019-04-17
2019-04-17
2019-04-17
2019-04-17
2019-04-17
2019-04-17
2019-04-17
2019-04-17
2019-04-18
2019-04-18
2019-04-18
2019-04-18
2019-04-18
2019-04-18
2019-04-18
2019-04-18
2019-04-18
2019-04-18
2019-04-18
2019-04-18
2019-04-18
2019-04-18
2019-04-18
2019-04-18
2019-04-18
2019-04-18
2019-04-18
2019-04-18
2019-04-18
2019-04-23
2019-04-23
2019-04-23
2019-04-23
2019-04-23
2019-04-24
2019-04-24
2019-04-24
2019-04-24
2019-04-24
2019-04-24
2019-04-24
2019-04-24
2019-04-25
2019-04-25
2019-04-26
2019-04-26
2019-04-26
2019-04-26
2019-04-26
2019-04-26
2019-04-26
2019-04-26
2019-04-26
2019-04-26
2019-04-26
2019-04-26
2019-04-26
2019-04-29
2019-04-29
2019-04-30
2019-04-30
2019-04-30
2019-04-30
2019-04-30
2019-05-02
2019-05-03
2019-05-03
2019-05-03
2019-05-03
2019-05-03
2019-05-03
2019-05-03
2019-05-03
2019-05-03
2019-05-03
2019-05-03
2019-05-03
2019-05-03
2019-05-03
2019-05-07
2019-05-07
2019-05-07
2019-05-07
2019-05-07
2019-05-07
2019-05-08
2019-05-08
2019-05-08
2019-05-08
2019-05-09
2019-05-09
2019-05-09
2019-05-10
2019-05-10
2019-05-10
2019-05-10
2019-05-13
2019-05-13
2019-05-14
2019-05-14
2019-05-14
2019-05-14
2019-05-14
2019-05-15
2019-05-15
2019-05-15
2019-05-15
2019-05-15
2019-05-15
2019-05-15
2019-05-15
2019-05-15
2019-05-15
2019-05-15
2019-05-15
2019-05-15
2019-05-15
2019-05-16
2019-05-16
2019-05-16
2019-05-16
2019-05-16
2019-05-17
2019-05-17
2019-05-17
2019-05-20
2019-05-21
2019-05-21
2019-05-22
2019-05-22
2019-05-22
2019-05-22
2019-05-22
2019-05-22
2019-05-22
2019-05-22
2019-05-22
2019-05-22
2019-05-22
2019-05-22
2019-05-22
2019-05-22
2019-05-22
2019-05-22
2019-05-22
2019-05-22
2019-05-22
2019-05-22
2019-05-22
2019-05-22
2019-05-23
2019-05-23
2019-05-23
2019-05-23
2019-05-24
2019-05-24
2019-05-24
2019-05-28
2019-05-28
2019-05-29
2019-06-07
2019-06-07
2019-06-11
2019-06-13
2019-06-14
2019-06-18
2019-06-18
2019-06-19
2019-06-19
2019-06-19
2019-06-19
2019-06-19
2019-06-19
2019-06-19
2019-06-19
2019-06-19
2019-06-19
2019-06-19
2019-06-19
2019-06-19
2019-06-19
2019-06-19
2019-06-19
2019-06-19
2019-06-19
2019-06-19
2019-06-19
2019-06-19
2019-06-19
2019-06-19
2019-06-19
2019-06-19
2019-06-19
2019-06-19
2019-06-19
2019-06-20
2019-06-20
2019-06-20
2019-06-21
2019-06-25
2019-06-28
2019-06-28
2019-06-28
2019-06-28
2019-07-03
2019-07-11
2019-07-12
2019-07-12
2019-07-15
2019-07-15
2019-07-15
2019-07-15
2019-07-15
2019-07-16
2019-07-16
2019-07-16
2019-07-16
2019-07-16
2019-07-16
2019-07-16
2019-07-16
2019-07-16
2019-07-16
2019-07-16
2019-07-16
2019-07-16
2019-07-16
2019-07-16
2019-07-16
2019-07-16
2019-07-16
2019-07-16
2019-07-16
2019-07-16
2019-07-16
2019-07-16
2019-07-16
2019-07-16
2019-07-16
2019-07-16
2019-07-16
2019-07-16
2019-07-16
2019-07-17
2019-07-17
2019-07-17
2019-07-17
2019-07-17
2019-07-17
2019-07-17
2019-07-17
2019-07-17
2019-07-17
2019-07-17
2019-07-17
2019-07-17
2019-07-19
2019-07-22
2019-07-22
2019-07-22
2019-07-24
2019-07-25
2019-08-21
2019-08-21
2019-09-06
2019-09-17
2019-09-18
2019-09-30
2019-10-02
2019-10-07
2019-10-16
假设您想在日期进行线性插值:
df.Maturity = pd.to_datetime(df.Maturity)
df2.Maturity = pd.to_datetime(df2.Maturity)
# get the common date in the two data frames
common = df.merge(df2.drop_duplicates(), how='outer').set_index('Maturity')
# interpolate the value:
common = common.resample('d').interpolate().reset_index()
# merge
common.merge(df2, how='right')
我有 2 个不同的数据框。一个是包含日期和值的 "Values" 列表。第二个数据框是日期数据框,位于数据框 1 的日期之间。我想合并 2 个数据框并将数据框 1 中的值插入数据框 2 中的值。
我尝试了以下方法:
sample_final= sample_set_1.merge(sample_set_2, how='right').set_index('Maturity').interpolate()
但是没用!我在循环!
感谢任何帮助!
谢谢
Maturity DF 2019-04-11 1.0 2019-04-12 0.999933 2019-04-15 0.999732 2019-04-16 0.9996649999999999 2019-04-23 0.9991969999999999 2019-04-29 0.9987959999999999 2019-05-06 0.9983290000000001 2019-05-15 0.9977290000000001 2019-06-17 0.995532 2019-07-15 0.99369 2019-08-15 0.991663 2019-09-16 0.989582 2019-10-15 0.987725 2019-11-15 0.985764 2019-12-16 0.98383 2020-01-15 0.9819899999999999 2020-02-18 0.979935 2020-03-16 0.9783209999999999 2020-04-15 0.97655 2020-07-15 0.971353 2020-10-15 0.96631 2021-04-15 0.9568610000000001 2022-04-19 0.938263 2023-04-17 0.9198 2024-04-15 0.9006190000000001
Dataframe2: Maturity 2019-04-17 2019-04-17 2019-04-17 2019-04-17 2019-04-17 2019-04-17 2019-04-17 2019-04-17 2019-04-17 2019-04-17 2019-04-17 2019-04-17 2019-04-17 2019-04-17 2019-04-17 2019-04-17 2019-04-18 2019-04-18 2019-04-18 2019-04-18 2019-04-18 2019-04-18 2019-04-18 2019-04-18 2019-04-18 2019-04-18 2019-04-18 2019-04-18 2019-04-18 2019-04-18 2019-04-18 2019-04-18 2019-04-18 2019-04-18 2019-04-18 2019-04-18 2019-04-18 2019-04-23 2019-04-23 2019-04-23 2019-04-23 2019-04-23 2019-04-24 2019-04-24 2019-04-24 2019-04-24 2019-04-24 2019-04-24 2019-04-24 2019-04-24 2019-04-25 2019-04-25 2019-04-26 2019-04-26 2019-04-26 2019-04-26 2019-04-26 2019-04-26 2019-04-26 2019-04-26 2019-04-26 2019-04-26 2019-04-26 2019-04-26 2019-04-26 2019-04-29 2019-04-29 2019-04-30 2019-04-30 2019-04-30 2019-04-30 2019-04-30 2019-05-02 2019-05-03 2019-05-03 2019-05-03 2019-05-03 2019-05-03 2019-05-03 2019-05-03 2019-05-03 2019-05-03 2019-05-03 2019-05-03 2019-05-03 2019-05-03 2019-05-03 2019-05-07 2019-05-07 2019-05-07 2019-05-07 2019-05-07 2019-05-07 2019-05-08 2019-05-08 2019-05-08 2019-05-08 2019-05-09 2019-05-09 2019-05-09 2019-05-10 2019-05-10 2019-05-10 2019-05-10 2019-05-13 2019-05-13 2019-05-14 2019-05-14 2019-05-14 2019-05-14 2019-05-14 2019-05-15 2019-05-15 2019-05-15 2019-05-15 2019-05-15 2019-05-15 2019-05-15 2019-05-15 2019-05-15 2019-05-15 2019-05-15 2019-05-15 2019-05-15 2019-05-15 2019-05-16 2019-05-16 2019-05-16 2019-05-16 2019-05-16 2019-05-17 2019-05-17 2019-05-17 2019-05-20 2019-05-21 2019-05-21 2019-05-22 2019-05-22 2019-05-22 2019-05-22 2019-05-22 2019-05-22 2019-05-22 2019-05-22 2019-05-22 2019-05-22 2019-05-22 2019-05-22 2019-05-22 2019-05-22 2019-05-22 2019-05-22 2019-05-22 2019-05-22 2019-05-22 2019-05-22 2019-05-22 2019-05-22 2019-05-23 2019-05-23 2019-05-23 2019-05-23 2019-05-24 2019-05-24 2019-05-24 2019-05-28 2019-05-28 2019-05-29 2019-06-07 2019-06-07 2019-06-11 2019-06-13 2019-06-14 2019-06-18 2019-06-18 2019-06-19 2019-06-19 2019-06-19 2019-06-19 2019-06-19 2019-06-19 2019-06-19 2019-06-19 2019-06-19 2019-06-19 2019-06-19 2019-06-19 2019-06-19 2019-06-19 2019-06-19 2019-06-19 2019-06-19 2019-06-19 2019-06-19 2019-06-19 2019-06-19 2019-06-19 2019-06-19 2019-06-19 2019-06-19 2019-06-19 2019-06-19 2019-06-19 2019-06-20 2019-06-20 2019-06-20 2019-06-21 2019-06-25 2019-06-28 2019-06-28 2019-06-28 2019-06-28 2019-07-03 2019-07-11 2019-07-12 2019-07-12 2019-07-15 2019-07-15 2019-07-15 2019-07-15 2019-07-15 2019-07-16 2019-07-16 2019-07-16 2019-07-16 2019-07-16 2019-07-16 2019-07-16 2019-07-16 2019-07-16 2019-07-16 2019-07-16 2019-07-16 2019-07-16 2019-07-16 2019-07-16 2019-07-16 2019-07-16 2019-07-16 2019-07-16 2019-07-16 2019-07-16 2019-07-16 2019-07-16 2019-07-16 2019-07-16 2019-07-16 2019-07-16 2019-07-16 2019-07-16 2019-07-16 2019-07-17 2019-07-17 2019-07-17 2019-07-17 2019-07-17 2019-07-17 2019-07-17 2019-07-17 2019-07-17 2019-07-17 2019-07-17 2019-07-17 2019-07-17 2019-07-19 2019-07-22 2019-07-22 2019-07-22 2019-07-24 2019-07-25 2019-08-21 2019-08-21 2019-09-06 2019-09-17 2019-09-18 2019-09-30 2019-10-02 2019-10-07 2019-10-16
假设您想在日期进行线性插值:
df.Maturity = pd.to_datetime(df.Maturity)
df2.Maturity = pd.to_datetime(df2.Maturity)
# get the common date in the two data frames
common = df.merge(df2.drop_duplicates(), how='outer').set_index('Maturity')
# interpolate the value:
common = common.resample('d').interpolate().reset_index()
# merge
common.merge(df2, how='right')