我的示例数据框包含:
dictx = {'col':[20,'nan',22,'nan','nan','nan',30,'nan',28,'nan',25]}
df = pd.DataFrame(dictx).astype(float)
df = df.reset_index()
第1部分
我需要用四肢的平均值填充那些缺失的数据,例如
df1 = df.iloc[:3,[1]]
col
0 20.0
1 NaN
2 22.0
索引1
的值应为21
这个问题将再次出现在其他需要相同治疗的情况下
第2部分
或者当NaN不止一个时,我需要绘制折线图中的数据如下:
df2 = df.iloc[2:7,[1]]
col
2 22.0
3 NaN
4 NaN
5 NaN
6 30.0
x = df.iat[6,1]
x0 = df.iat[2,1]
y = df.iat[6,0]
y0 = df.iat[2,0]
slope = (x - x0)/(y-y0)
value = slope*(x - x0) + y0
因此每个指数的值会有所不同
我的目标是:
真正的数据帧不断变化,有1440行,所以这个问题一遍又一遍地重复
我在第1部分需要更多帮助,因为我可以使用第一部分中的逻辑对第2部分应用类似的方法。
答案 0 :(得分:1)
我认为您正在尝试进行线性插值,请使用interpolate
:
让我们试试:
df.interpolate()
输出:
index col
0 0 20.0
1 1 21.0
2 2 22.0
3 3 24.0
4 4 26.0
5 5 28.0
6 6 30.0
7 7 29.0
8 8 28.0
9 9 26.5
10 10 25.0