如何在仅保留同一时间段的数据的同时使用日期时间索引连接两个数据帧?



我有不同的数据帧,格式如下:

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_index('Date', inplace=True)之后

df = pd.merge(df,aux, how='inner', left_index=True, right_index=True)

df = df.join(aux, how='inner', lsuffix='_x', rsuffix='_y')

我得到相同的空数据帧:

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

谢谢

我认为您可以尝试以下方法。我认为问题可能出在索引上。它应该给出所需的输出。

import pandas as pd
df1 = pd.DataFrame(columns=["A", "B"], data=[['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_index(['A'],inplace= True)
df2 = pd.DataFrame(columns=["C", "D"], data=[['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_datetime(df2['C'])
df2.set_index(['C'],inplace= True)
df = pd.merge(df1,df2, how='inner', left_index=True, right_index=True)

相关内容

  • 没有找到相关文章

最新更新