如何从现有列线性插入新列?
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
值的列之间添加一个新列,然后使用 interpolate
和 axis=1
:
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
我正在尝试使用两个可用列中的值对新列进行线性插值。我正在使用 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
值的列之间添加一个新列,然后使用 interpolate
和 axis=1
:
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