在Python中,我們常常需要處理時間相關的數據。但有些情況下,我們可能會遇到一些時間不連續的問題。這種情況通常出現在以下幾種情境:
1. 數據中斷導致的時間間隔不連續;
2. 跨越不同時間區間的數據需要合并;
3. 數據集中有多個不同的時間間隔。
# 示例代碼 - 計算不連續時間段的相對位置 # 導入必要庫 import numpy as np import pandas as pd # 創建時間序列 idx = pd.date_range(start='2022-01-01 00:00:00', end='2022-01-10 23:59:59', freq='5H') # 打亂順序并插入缺失值 idx = idx[np.random.permutation(len(idx))] idx_missing = np.random.choice(range(len(idx)), int(len(idx)*0.2), replace=False) for i in idx_missing: idx[i] = np.nan # 將時間序列轉化為Dataframe df = pd.DataFrame(idx, columns=['time']) df['value'] = np.random.randn(len(df)) # 計算相對位置 df['delta_time'] = df['time'].diff() df['delta_value'] = df['value'].diff() df.dropna(subset=['delta_time'], inplace=True) # 輸出結果 print(df)
在示例代碼中,我們模擬了一個時間序列,隨機插入了20%的缺失值。接著,我們使用pandas庫計算了每個時間點與前一個時間點的時間差和數值差,再將缺失值所在行刪除。最后,我們得到了一個不斷連續的時間序列。