在R / Python中用两个不匹配的不规则时间序列排列两个变量?

时间:2015-07-21 23:34:01

标签: python r time-series dplyr plyr

我有每小时的日期/时间,以不规则的间隔给出溪流排放和日期/时间,从而产生溪流沉积物浓度。我不确定如何在此处发布数据框,但它看起来像:

 Datetimedis, Discharge, Datetimesed, Sediment
6/12/15 12:00  1.1 6/12/15 18:00  1231
6/12/15 13:00  113 6/13/15 1:00 12312
6/12/15 14:00  123 21 6/13/15 8:00 12321
6/12/15 15:00  12 6/13/15 15:00 12312
6/12/15 16:00  12 6/14/15 19:00 4324
6/12/15 17:00  23 6/15/15 2:00 534523
6/12/15 18:00  123 6/15/15 9:00 52341

我有大约2500个原始数据用于排放,大约500个用于沉积物的数据。有没有办法使用ddply或R包或python将沉积物的值粘贴到对应于同一时间的放电值旁边?

在这个示例数据中,我希望例如在6/12/15 18:00的沉积物值粘贴在那时的放电值旁边。

我需要将它们粘贴在那里,中间的空格包含NA值或空值,以便我以后可以插入它们。

2 个答案:

答案 0 :(得分:0)

假设您有一个具有日期时间和排放(df)的数据框,另一个具有时间和沉积物浓度(df2)  你可以用python pandas做到以下......

使用df中的Datetime时间创建一个新列:

 df['hours'] = df.index.hour

然后使用pandas中的map函数将df2中的沉积物浓度映射到df:

df['Sediment']=df['hours'].map(df2)

答案 1 :(得分:0)

我用动物园包知道了它!

对于将来使用此作为参考的任何人,我将两个单独的日期和值条目拆分为单独的数据框d1和d2。

zoo1 <- read.zoo(d1, header=TRUE)
zoo2 <- read.zoo(d2, header=TRUE)
zoomerge <- merge(d1, d2)

工作得很好!