我有不同的数据帧,格式如下:
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)