如何对每分钟不均匀的时间戳进行重新采样

时间:2019-08-13 04:45:16

标签: python pandas time-series

我正在处理一些数据,其中整天每隔几秒钟记录一次数据。我必须通过每分钟取平均值来重新采样数据。

例如,这是我的数据

Date    Time    Recorded_data
2019-01-01    00:00:20    0.20
2019-01-01    00:00:25    0.25
2019-01-01    00:00:28    0.16
2019-01-01    00:00:32    0.26
2019-01-01    00:00:36    0.28
2019-01-01    00:00:45    0.26
2019-01-01    00:00:48    0.24
2019-01-01    00:00:56    0.24
2019-01-01    00:01:00    0.18
...

我想重新采样上面的数据

Date    Time    Recorded_data
2019-01-01    00:00:00    0.23
...

我想每分钟取所有数据的平均值。

我尝试对熊猫进行重新采样,但这只是将Recorded_data列中的所有数据转换为Nan

这是我用来重新采样数据的代码

df.Recorded_data.resample('min').mean()

我在此link中尝试了答案,但似乎不起作用

2 个答案:

答案 0 :(得分:2)

如果“日期”和“时间”是单独的列,请首先将它们组合并转换为日期时间。然后,您可以在datetime列上重新采样,

df['datetime'] = pd.to_datetime(df['Date'] + ' ' + df['Time'])

df.set_index('datetime').resample('H').Recorded_data.mean().reset_index(name = 'Recorded_data')

你得到

    datetime    Recorded_data
0   2019-01-01  0.23

答案 1 :(得分:1)

T的{​​{3}}与mean一起使用,并将on与参数DatetimeIndex一起使用,则不需要df['datetime'] = pd.to_datetime(df['Date'] + ' ' + df['Time']) df = df.resample('T', on='datetime').Recorded_data.mean().reset_index(name='Recorded_data') print (df) datetime Recorded_data 0 2019-01-01 00:00:00 0.23625 1 2019-01-01 00:01:00 0.18000

class SSGIFHistoryModel: NSObject, NSCoding {

var bg_image: String
var total_like: String
var total_view: String
let gifID: String
var title: String

init(bg_image: String, total_like: String, total_view: String, gifID: String, title: String) {
    self.bg_image = bg_image
    self.total_like = total_like
    self.total_view = total_view
    self.gifID = gifID
    self.title = title

}

required init?(coder aDecoder: NSCoder) {
    self.bg_image = aDecoder.decodeObject(forKey: "bg_image") as? String ?? ""
    self.total_like = aDecoder.decodeObject(forKey: "total_like") as? String ?? ""
    self.total_view = aDecoder.decodeObject(forKey: "total_view") as? String ?? ""
    self.gifID = aDecoder.decodeObject(forKey: "gifID") as? String ?? ""
    self.title = aDecoder.decodeObject(forKey: "title") as? String ?? ""

}

func encode(with aCoder: NSCoder) {
    aCoder.encode(bg_image, forKey: "bg_image")
    aCoder.encode(total_like, forKey: "total_like")
    aCoder.encode(total_view, forKey: "total_view")
    aCoder.encode(gifID, forKey: "gifID")
    aCoder.encode(title, forKey: "title")
}
}