我尝试在pythonpandas中的两个数据帧中插入两个日期列。在
我想将dfDrillTable中的“EVENT”列“DrillDate”合并到dfCompTable中的最近的下一个发生日期。dfDrillTable有一个“Drilldate”,它总是出现在dfCompTable“OpenDate”之前。dfDrillTable和dfCompTable必须在“Name”上联接,但只有dfDrillTable有一个唯一的“EVENT”,我正试图将这两个数据帧链接在上面。在
有些井名在钻取表中有事件数据,但在dfCompTable(和visa vera)中不存在。我需要这些仍然进入表中,但作为空白的值不存在。在
我已经创建了两个示例数据帧供参考。然后第三个来展示我想要的结果。在
我知道有多种方法可以用outerjoin和this和that来实现,但我只是在寻找一种最干净、最简单的方法来在两个日期之间进行插值。在
#dfDrillTable
Name EVENT DrillDate
0 W1 E1 2000-01-01
1 W1 E2 2000-03-01
2 W2 E3 2000-04-01
3 W1 E4 2000-05-15
4 W2 E5 2000-01-10
5 W3 E6 2000-02-01
6 G1 E1 2000-02-02
#dfCompTable
Name OpenDate
0 W1 2000-01-02
1 W1 2000-03-15
2 W1 2000-05-10
3 W1 2000-05-20
4 W2 2000-01-15
5 W3 2000-02-10
6 X1 2016-05-05
#dfInterp Outcome
Name EVENT DrillDate OpenDate
0 W1 E1 2000-01-01 2000-01-02
1 W1 E2 2000-03-01 2000-03-15
2 W1 E3 2000-04-01 2000-05-10
3 W1 E4 2000-05-15 2000-05-20
4 W2 E5 2000-01-10 2000-01-15
5 W3 E6 2000-02-01 2000-02-10
6 G1 E1 2000-01-10 NaT
7 X1 NaT 2016-05-05
下面是创建表的代码
^{pr2}$结果是:
# Hopefull Outcome
raw_data = {'Name': ['W1', 'W1', 'W1', 'W1', 'W2','W3','G1','X1'],
'EVENT':['E1', 'E2', 'E3', 'E4', 'E5','E6','E1',''],
'DrillDate': ['01/01/2000', '03/01/2000', '04/01/2000', '05/15/2000', '01/10/2000','02/01/2000','01/10/2000',''],
'OpenDate': ['01/02/2000', '03/15/2000', '05/10/2000', '05/20/2000', '01/15/2000','02/10/2000','','05/05/2016']}
dfInterp = pd.DataFrame(raw_data, columns = ['Name','EVENT','DrillDate','OpenDate'])
dfInterp['DrillDate'] = pd.to_datetime(dfInterp['DrillDate'])
dfInterp['OpenDate'] = pd.to_datetime(dfInterp['OpenDate'])
dfInterp
让我们使用^{} :<;链接到文档
在pd.合并是版本0.19.0中的新版本,请确保安装了最新的pandas。在
相关问题 更多 >
编程相关推荐