[英]Pandas Aggregate Daily Data to Monthly Timeseries
我有一個看起來像這樣的時間序列(下圖)
我想每月對它重新采樣,所以它有 2019-10 等於 10 月所有值的平均值,11 月是 11 月所有 PTS 值的平均值,等等。
但是,當我使用 pd.resample('M').mean() 方法時,如果每個月的最后一天沒有值,它會在我的數據框中填充一個 Nan。 我該如何解決這個問題?
Date PTS
2019-10-23 14.0
2019-10-26 14.0
2019-10-27 8.0
2019-10-29 29.0
2019-10-31 17.0
2019-11-03 12.0
2019-11-05 2.0
2019-11-07 15.0
2019-11-08 7.0
2019-11-14 16.0
2019-11-16 12.0
2019-11-20 22.0
2019-11-22 9.0
2019-11-23 20.0
2019-11-25 18.0```
這行得通嗎?
pd.resample('M').mean().dropna()
你有代碼示例嗎? 這有效:
import pandas as pd
import numpy as np
rng = np.random.default_rng()
days = np.arange(31)
data = pd.DataFrame({"dates": np.datetime64("2019-03-01") + rng.choice(days, 60),
"values": rng.integers(0, 60, size=60)})
data.set_index("dates", inplace=True)
# Set the last day to null.
data.loc["2019-03-31"] = np.nan
# This works
data.resample("M").mean()
它也適用於不完整的月份:
incomplete_days = np.arange(10)
data = pd.DataFrame({"dates": np.datetime64("2019-03-01") + rng.choice(incomplete_days, 10),
"values": rng.integers(0, 60, size=10)})
data.set_index("dates", inplace=True)
data.resample("M").mean()
您應該更徹底地檢查您的數據和類型,以防您收到的 NaN 表明存在更緊迫的問題。
為什么不直接刪除 NaN 值?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.