在数据帧的一列中插入值(python)

2024-05-12 19:44:01 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个包含三列的数据帧(时间戳、温度和水位)。 我要做的是用插值值替换“水位”列中的所有NaN值。例如:

enter image description here

水位值一直在下降直到它为0。因此,水位不能为负。此外,如果水位保持不变,则插值值也应相同。理想情况下,插值值之间的步长(在两个可用水位值内)应相同。在

到目前为止,我所做的努力是:

df['waterlevel'].interpolate(method ='linear', limit_direction ='backward')  # backwards because the waterlevel value is always decreasing.

这不起作用。在执行这行之后,每个NaN值都变成了参数为“forward”的0,并使用参数“backward”保持NaN。在

以及

^{pr2}$

关于如何解决这个问题有什么建议吗?在


Tags: 数据df参数时间情况nan温度method
1条回答
网友
1楼 · 发布于 2024-05-12 19:44:01

我假设NaN是np.nan对象

import pandas as pd
import numpy as np

df = pd.DataFrame({"waterlevel": ['A',np.nan,np.nan,'D'],"interpolated values":['Ai','Bi','Ci','D']})
print(df)

df.loc[df['waterlevel'].isnull(),'waterlevel'] = df['interpolated values']
print(df)

开/关:

^{pr2}$

相关问题 更多 >