如何在 Python 中进行插值?
How to interpolate in Python?
我想对数据框 df2 中的 Value_B 列进行线性插值。我怎样才能用 python 轻松地做到这一点?
df2 = pd.DataFrame(np.array([[1, 2, 10], [2, 5, ''], [3, 8, 30], [4, 2, ''], [5, 5, 50], [6, 8, '']]), columns=['Angle', 'Value_A', 'Value_B'])
df2
Value_B 的结果应该是 10, '20', 30, '40', 50, '60'。
pandas interpolate()
函数
df2.interpolate(method ='linear', limit_direction ='forward')
您甚至可以向后插值并设置限制
df.interpolate(method ='linear', limit_direction ='backward', limit = 1)
我意识到我们需要在插值之前首先将df2的列设置为数字。
然后我们可以关注@leopardxpreload answer
for col in df2.columns:
df2[col] = pd.to_numeric(df2[col], errors='coerce')
df = df2.interpolate(method ='linear', limit_direction ='forward')
df2['Value_B']=df2['Value_B'].apply(pd.to_numeric).replace('',np.nan, regex=True).interpolate() #empty cells need to be Nan
我想对数据框 df2 中的 Value_B 列进行线性插值。我怎样才能用 python 轻松地做到这一点?
df2 = pd.DataFrame(np.array([[1, 2, 10], [2, 5, ''], [3, 8, 30], [4, 2, ''], [5, 5, 50], [6, 8, '']]), columns=['Angle', 'Value_A', 'Value_B'])
df2
Value_B 的结果应该是 10, '20', 30, '40', 50, '60'。
pandas interpolate()
函数
df2.interpolate(method ='linear', limit_direction ='forward')
您甚至可以向后插值并设置限制
df.interpolate(method ='linear', limit_direction ='backward', limit = 1)
我意识到我们需要在插值之前首先将df2的列设置为数字。 然后我们可以关注@leopardxpreload answer
for col in df2.columns:
df2[col] = pd.to_numeric(df2[col], errors='coerce')
df = df2.interpolate(method ='linear', limit_direction ='forward')
df2['Value_B']=df2['Value_B'].apply(pd.to_numeric).replace('',np.nan, regex=True).interpolate() #empty cells need to be Nan