如何插入部分 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()
我有一个数据框,我想对其进行部分插值。这是数据:
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()