簡體   English   中英

時間序列數據:填補時間序列數據和聚合值的空白

[英]Time Series Data: Fill gaps in timeseries data and aggregate values

我是新手,使用 VBA 在 Excel 工作表中組織一些數據。 如果這更容易的話,我也有一些 Python 經驗。

我有一個來自模型的 .csv 文件,該文件輸出不連續的時間序列(只要有流入,但不是每 1 分鍾的時間步長):

日期/時間排水cm/BRA
5/10/14 11:00 0
5/10/14 11:01 1
5/10/14 11:02 2
5/10/14 11:03 2
5/10/14 11:04 1
5/11/14 7:00 1
5/11/14 7:01 0
5/11/14 7:02 1
5/11/14 7:03 1
5/11/14 7:04 0
5/11/14 7:05 0

我想要的是能夠將數據聚合到 2 分鍾的時間步長。 所以我得到這個:

日期/時間排水cm/BRA
5/10/14 11:00 1
5/10/14 11:02 4
5/10/14 11:04 1
5/10/14 11:06 0
5/10/14 11:08 0
...

...
5/11/14 6:58 0
5/11/14 7:00 1
5/11/14 7:02 2
5/11/14 7:04 0

我已經有了一個代碼,只要我有一個連續的數據文件,它就會為我聚合數據(在這個例子中,填補了 5/10/14 11:04 到 5/11/14 7:00 之間的空白)。 可以想象,對於微小的數據,手動填補空白的工作太多了,更不用說我必須為 70 多個輸出文件重現這一點。

盡管時間序列存在不均勻的差距,但對於創建連續時間序列或聚合到 2 分鍾的任何建議?

試試這個解決方案。 它采用了pandas和以下技術:

  • 將 CSV 文件讀入 DataFrame
  • 組合列數據
  • 日期/時間字符串轉換為datetime數據類型
  • datetime對象重新采樣為 2 分鍾間隔

數據質量問題:

您的 CSV 中有幾個數據質量問題,其中:

  • 數據實際上不是逗號分隔的
  • 列名中有空格
  • 有兩列,但數據中有三個空格(日期、時間、排水)

給出上述內容,有一段代碼可以解決這些問題。

示例代碼:

import pandas as pd

# Read Excel file into DataFrame.
df = pd.read_csv('./drainage.csv', sep=' ')

# Address data quality issues:
# Combine date and time columns.
df['Date/Time Drainage'] = df['Date/Time'] + ' ' + df['Drainage']
# Drop unneeded columns.
df.drop(['Date/Time', 'Drainage'], axis=1, inplace=True)
# Ensure Date/Time column is a datetime datatype.
df['Date/Time Drainage'] = pd.to_datetime(df['Date/Time Drainage'], format='%m/%d/%y %H:%M')

# Resample to 2 second intervals and sum results.
df = df.set_index('Date/Time Drainage').resample('2T').sum().reset_index()

# Show results.
print(df)

輸出:

     Date/Time Drainage  cm/BRA
0   2014-05-10 11:00:00       1
1   2014-05-10 11:02:00       4
2   2014-05-10 11:04:00       1
3   2014-05-10 11:06:00       0
4   2014-05-10 11:08:00       0
5   2014-05-10 11:10:00       0
...
597 2014-05-11 06:54:00       0
598 2014-05-11 06:56:00       0
599 2014-05-11 06:58:00       0
600 2014-05-11 07:00:00       1
601 2014-05-11 07:02:00       2
602 2014-05-11 07:04:00       0

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM