首页 > 解决方案 > 在熊猫中查找日期之前日期的值和之后日期的所有值并找到计算积分的函数

问题描述

我有两个数据框,一个是带有某个事件日期的表(table_event),第二个是带有多个日期值的表(table_values)。我想创建第三个数据框(table_all_dates),它结合了事件的日期、table_event 中事件之前的值和日期以及 table_event 中事件之后的所有日期和值。

之后,我希望使用线性回归将所有事件逐行链接,以便找到积分。我可以手动完成,但我不知道以更有用和更快的方式完成。

import pandas as pd
import numpy as np

table_values = pd.DataFrame({'id': ['A', 'B'],
                             'date1': ['2014/05/05', '2014/05/05'], 'value1': [1, 5],
                             'date2': ['2014/05/16', '2014/05/16'], 'value2': [8, 7], 
                             'date3': ['2014/07/08', '2014/07/08'], 'value3': [np.nan, 2],
                             'date4': ['2014/07/15', '2014/07/15'], 'value4': [7, 6],
                             'date5': ['2014/07/18', '2014/07/18'], 'value5': [3, 1]
                            })

table_event = pd.DataFrame({'id': ['A', 'B'], 'date_event': ['2014/06/01', '2014/05/10']})


table_all_dates = pd.DataFrame({'id': ['A', 'B'], 
                                'date_event': ['2014/06/01', '2014/05/10'],

                                'date_before_event' : ['2014/05/16','2014/05/05'], 
                                'value_before_event' : [8,5],

                                'first_date_after_event' : ['2014/07/15','2014/05/16'],
                                'first_value_after_event' : [7,7],

                                'second_date_after_event' : ['2014/07/18','2014/07/08'],
                                'second_value_after_event' : [3,2],

                                'third_date_after_event' : ['null','2014/07/15'],
                                'third_value_after_event' : [np.nan,6],

                                'fourth_date_after_event' : ['null','2014/07/18'],
                                'fourth_value_after_event' : [np.nan,1]
                               })


(table_all_dates ['value_before_event']+table_all_dates ['first_value_after_event'])/2*(table_all_dates ['first_date_after_event']-table_all_dates ['date_before_event'])

标签: pythonpandasdate

解决方案


推荐阅读