Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/299.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何使用datetime索引连接两个数据帧,同时只保留同一时期的数据?_Python_Pandas_Dataframe_Merge_Concat - Fatal编程技术网

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