用以前的记录在熊猫数据框中填充丢失的记录

时间:2019-05-06 07:31:57

标签: python pandas

我有一个数据框1

prec_-80_2

如下所示:

df

我需要根据import pandas as pd s = {'id': [243,243, 243, 243, 443,443,443], 'st': [1,3,5,9,12, 18,23], 'value':[2.4, 3.8, 3.7, 5.6, 1.2, 0.2, 2.1]} df = pd.DataFrame(s) 中的值填写缺少的行, id st value 0 243 1 2.4 1 243 3 3.8 2 243 5 3.7 3 243 9 5.6 4 443 12 1.2 5 443 18 0.2 6 443 23 2.1 st列中的值应从上一条记录中复制。我的输出应类似于

value

以此类推。

如何在熊猫数据框中执行此操作?

在这里,我试图填充缺失的记录,而不是仅填充缺失的值。

1 个答案:

答案 0 :(得分:0)

如果列st中的值是唯一的,请使用DataFrame.reindex,并用ffill来填充缺失值:

c = np.arange(df['st'].min(), df['st'].max()+1)
df1 = (df.set_index('st')
        .reindex(c)
        .ffill()
        .reset_index()
)

df1['id'] = df1['id'].astype(int)
print (df1)
    st   id  value
0    1  243    2.4
1    2  243    2.4
2    3  243    3.8
3    4  243    3.8
4    5  243    3.7
5    6  243    3.7
6    7  243    3.7
7    8  243    3.7
8    9  243    5.6
9   10  243    5.6
10  11  243    5.6
11  12  443    1.2
12  13  443    1.2
13  14  443    1.2
14  15  443    1.2
15  16  443    1.2
16  17  443    1.2
17  18  443    0.2
18  19  443    0.2
19  20  443    0.2
20  21  443    0.2
21  22  443    0.2
22  23  443    2.1