Python 如何使用datetime索引连接两个数据帧,同时只保留同一时期的数据?
我有以下格式的不同数据帧:Python 如何使用datetime索引连接两个数据帧,同时只保留同一时期的数据?,python,pandas,dataframe,merge,concat,Python,Pandas,Dataframe,Merge,Concat,我有以下格式的不同数据帧: Date X Y Value Customer 2015-05-29 12:00:00 1.0 4.0 3.340 13458 2015-05-29 12:15:00 1.0 4.0 3.448 13458 2015-05-29 12:30:00 1.0 4.0 3.145 13458 2015-05-29 12
Date X Y Value Customer
2015-05-29 12:00:00 1.0 4.0 3.340 13458
2015-05-29 12:15:00 1.0 4.0 3.448 13458
2015-05-29 12:30:00 1.0 4.0 3.145 13458
2015-05-29 12:45:00 1.0 4.0 3.535 13458
2015-05-29 13:15:00 1.0 4.0 3.299 13458
2015-05-29 13:30:00 1.0 4.0 3.193 13458
2015-05-29 13:45:00 1.0 4.0 3.560 13458
然而,这些记录是不同时期的,但它们在某种程度上完全重叠。我想加入,同时只保留重叠时段的数据。我试着加入、合并、合并;它适用于how='outer'
选项,但不适用于inner
选项。
例如,对于代码,在df.set\u index('Date',inplace=True)
之后:
及
我得到相同的空数据帧:
Empty DataFrame
Columns: [X_x, Y_x, value_x, customer_x, X_y, Y_y, value_y, customer_y]
Index: []
最后,对于代码:
df = pd.concat([df, aux], axis=1, join='inner')
我得到:
TypeError: 'NoneType' object is not iterable
谢谢我想你可以试试下面的方法。我认为问题可能出在索引上。它应该提供所需的输出
将熊猫作为pd导入
df1=pd.DataFrame(列=[“A”,“B”],数据=['2015-05-29 12:00:00',0],'2015-05-29 12:15:00',1],'2015-05-29 12:30:00',2]]
df1['A']=pd.to_datetime(df1['A'])
df1.set_索引(['A'],inplace=True)
df2=pd.DataFrame(列=[“C”,“D”],数据=['2015-05-29 12:00:00',3],'2015-05-29 12:15:00',4],'2015-05-29 12:30:00',5])
df1['C']=pd.to_日期时间(df2['C'])
df2.set_索引(['C'],inplace=True)
df=pd.merge(df1,df2,how='internal',left_index=True,right_index=True)
您能解释一下您的重叠是什么样的吗?是白天吗?另外,当你说它适用于“外部”时,你得到了正确的匹配吗?在合并之前,你是否为两个数据帧设置了索引('Date',inplace=True)?如果没有,请这样做。@Gokulkrishnar它们完全重叠,正如我刚才编辑的那样。@Trenton\u M我已经做了。谢谢你的回答。我已经试过了,但没用。我在加入他们之后使用了df.dropna()
,how='outer'
,我认为这不是最优雅和安全的方法。
df = pd.concat([df, aux], axis=1, join='inner')
TypeError: 'NoneType' object is not iterable