根据日期时间列排列来自两个不同数据框的数据

时间:2019-01-30 13:59:21

标签: python-3.x

我有两个具有不同值的数据框。两个数据集的第一列都是相同的类型(“日期和时间”),但频率不同。例如,一个日期设置参数以5分钟的间隔排列,而另一个数据设置参数以15分钟的间隔排列。我可以在15分钟内使用python将平均值从一个数据集传输到另一数据集吗?图片中的数据示例:

enter image description here

我使用过pd.merge和pd.concat,但它们根本无法工作

2 个答案:

答案 0 :(得分:0)

您必须在两个数据集中添加一个ID才能合并

答案 1 :(得分:0)

我将对第一个数据帧进行重新采样 df1.resample('15T')。mean(),然后是pd.concat。

例如,

index = pd.date_range('1/1/2018', periods=12, freq='5T')
series1 = pd.Series(range(12), index=index)
series2 = pd.Series([0.1*x for x in range(12)],index=index)
df1 = pd.concat( [series1,series2], axis=1)
df1.columns = ["Value1","Value2"]

df1 = df1.resample('15T').mean()

index = pd.date_range('1/1/2018', periods=4, freq='15T')
series1 = pd.Series(range(4), index=index)
series2 = pd.Series([0.01*x for x in range(4)],index=index)
df2 = pd.concat( [series1, series2], axis=1)
df2.columns = ["Value3", "Value4"]

df = pd.concat([df1, df2], join="inner",  axis=1)
df

产生

                   Value1   Value2  Value3  Value4
2018-01-01 00:00:00 1       0.1     0       0.00
2018-01-01 00:15:00 4       0.4     1       0.01
2018-01-01 00:30:00 7       0.7     2       0.02
2018-01-01 00:45:00 10      1.0     3       0.03