如何插入部分 Pandas 数据帧

How to Interpolate a Partial Pandas Dataframe

我有一个数据框,我想对其进行部分插值。这是数据:

Date    Loc Value
1/1/2018    a   1
2/1/2018    a   2
3/1/2018    a   nan
1/1/2018    b   1
2/1/2018    b   nan
3/1/2018    b   3

和数据的枢轴table:

           a    b
1/1/2018    1   1
2/1/2018    2   nan
3/1/2018    nan 3

我只想插值(将最近的值向前推)column/location B。保持 A 列不变。最终结果将是一个枢轴 table。

df.interpolate(method='values')

将完成对所有数据的操作,但我看不到仅更改数据子集的方法。

您可以 select 使用 Loc == b 的数据并插入值,然后进行数据透视

df.loc[df['Loc'] == 'b', 'Value']= df.loc[df['Loc'] == 'b', 'Value'].interpolate()
df.pivot(index = 'Date', columns = 'Loc', values = 'Value')

Loc         a       b
Date        
1/1/2018    1.000   1.000
2/1/2018    2.000   2.000
3/1/2018    nan     3.000

或者,在您的旋转数据中插入所需的列

df['b'] = df['b'].interpolate()