![](/img/trans.png)
[英]How to linearly interpolate pandas columns values, based on a particular column
[英]How to linearly interpolate a new column from existing columns?
我正在嘗試使用兩個可用列中的值來線性插值新列。 我正在使用np.interp
,但它給出了關於fp
的錯誤。 誰能建議一種使用pandas
或numpy
進行線性插值的方法?
X1 X2
34.5 36.3
12.4 11.3
16.5 15.9
8.5 8.1
56.6 55.6
df['intreped_X'] = pd.Series(dtype='float') #adding a new column with NaN
df['intreped_X'] = np.interp(df['X1'].values,
df['X2'].values)
錯誤: TypeError: _interp_dispatcher() missing 1 required positional argument: 'fp'
。
更新:我還從這個鏈接測試了以下腳本,但不會在新列中產生新值,只是在每一行中添加"bound method NDFrame.interpolate..."
。
df['intreped_X'] = np.NaN
df = df.fillna(df.interpolate, axis=1)
print(df)
X1 intreped_X X2
0 34.5 <bound method NDFrame.interpolate of A ... 36.3
1 12.4 <bound method NDFrame.interpolate of A ... 11.3
2 16.5 <bound method NDFrame.interpolate of A ... 15.9
3 8.5 <bound method NDFrame.interpolate of A ... 8.1
4 56.6 <bound method NDFrame.interpolate of A ... 55.6
在填充有NaN
值的兩個現有列之間添加一個新列,然后使用帶有axis=1
的interpolate
:
df.insert(1, 'intreped_X', np.nan)
df.interpolate(axis=1)
結果:
X1 intreped_X X2
0 34.5 35.40 36.3
1 12.4 11.85 11.3
2 16.5 16.20 15.9
3 8.5 8.30 8.1
4 56.6 56.10 55.6
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.