當要求 pandas 使用 interpolate 重新采樣這個資料幀時,它不能正確地這樣做,只是向前傳播第一個值。有人可以解釋這種行為嗎?使用最新版本的 pandas 并使用 python 3.8
import pandas as pd
data = {'time': pd.to_timedelta([0., 1.1, 2.2, 3.3, 4.4], unit='s'), 'data':[100, 140, 50, 300, 400]}
df1 = pd.DataFrame(data=data).set_index('time')
df2 = df1.resample('1s').interpolate()
print(df1)
print(df2)
data
time
0 days 00:00:00 100
0 days 00:00:01.100000 140
0 days 00:00:02.200000 50
0 days 00:00:03.300000 300
0 days 00:00:04.400000 400
data
time
0 days 00:00:00 100.0
0 days 00:00:01 100.0
0 days 00:00:02 100.0
0 days 00:00:03 100.0
0 days 00:00:04 100.0
uj5u.com熱心網友回復:
您需要首先重新采樣到更小的單位并進行插值以獲得中間值。然后重新采樣到秒以獲取具有等距時間步長的資料。
df1.resample('ms').interpolate().resample('s').asfreq()
data
time
0 days 00:00:00 100.000000
0 days 00:00:01 136.363636
0 days 00:00:02 66.363636
0 days 00:00:03 231.818182
0 days 00:00:04 363.636364
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/524029.html
標籤:Python熊猫
