处理缺失数据,使用数据帧值填充nan,插值

时间:2018-02-20 20:13:29

标签: python python-2.7 pandas dataframe

我的示例数据框包含:

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部分应用类似的方法。

1 个答案:

答案 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