簡體   English   中英

Python 插值兩列數據

[英]Python Interpolate two columns data

我有兩列。 我想插值y-col以在x-col col 中進行相同的插值。

問題:

df = pd.DataFrame({'x':[1,3,5],'y':[10,30,50] })

df = 
   x   y
0  1  10
1  3  30
2  5  50

預期答案:

# interpolate x values
df = 
   x   y
0  1  10
1  2  NaN
2  3  30
3  4  NaN
4  5  50

# based on x-values, interpolate y-values.
df = 
   x   y
0  1  10
1  2  20
2  3  30
3  4  40
4  5  50

現有答案:

我遇到了嘗試映射/擬合整個 x 數據然后重新采樣的現有答案。 這不是我想要的。 一次插入兩個值就足夠了。

要創建您的第一個 df(基於 x 的插值),您可以使用 range. 然后您可以使用插值 function 進行插值。

df2 = pd.DataFrame({'x':range(df.x.min(), df.x.max()+1)}).merge(df, on='x', how='left')
df2.y = df2.y.interpolate()
df2
    x   y
0   1   10.0
1   2   20.0
2   3   30.0
3   4   40.0
4   5   50.0

暫無
暫無

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

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