Dataframe 列插值由另一列的值加权
Dataframe column interpolation weigthed by values of another column
我有以下数据框:
df = pd.DataFrame(
{
"A": [1, 4.5, 4.6, 4.7, 5.6, 6.8],
"B": [0.25, np.nan, np.nan, 4, 12.2, 14.4],
}
)
pd
A B
0 1.0 0.25
1 4.5 NaN
2 4.6 NaN
3 4.7 4.00
4 5.6 12.20
5 6.8 14.40
我想插入由 A 列的值加权的 B 列的缺失值。
df["B"][1] = ((df["B"][3]-df["B"][0])/(df["A"][3]-df["A"][0]))*(df["A"][1]-df["A"][0])+df["B"][0] --> 3.797297
df["B"][2] = ((df["B"][3]-df["B"][0])/(df["A"][3]-df["A"][0]))*(df["A"][2]-df["A"][0])+df["B"][0] --> 3.898649
有没有办法使用插值函数来实现?
谢谢。
保罗.
尝试 interpolate
:
# interpolate with option `method='index'` uses index as scale
# so we set `A` as index first
df['B'] = df.set_index('A')['B'].interpolate('index').values
输出:
A B
0 1.0 0.250000
1 4.5 3.797297
2 4.6 3.898649
3 4.7 4.000000
4 5.6 12.200000
5 6.8 14.400000
我有以下数据框:
df = pd.DataFrame(
{
"A": [1, 4.5, 4.6, 4.7, 5.6, 6.8],
"B": [0.25, np.nan, np.nan, 4, 12.2, 14.4],
}
)
pd
A B
0 1.0 0.25
1 4.5 NaN
2 4.6 NaN
3 4.7 4.00
4 5.6 12.20
5 6.8 14.40
我想插入由 A 列的值加权的 B 列的缺失值。
df["B"][1] = ((df["B"][3]-df["B"][0])/(df["A"][3]-df["A"][0]))*(df["A"][1]-df["A"][0])+df["B"][0] --> 3.797297
df["B"][2] = ((df["B"][3]-df["B"][0])/(df["A"][3]-df["A"][0]))*(df["A"][2]-df["A"][0])+df["B"][0] --> 3.898649
有没有办法使用插值函数来实现?
谢谢。 保罗.
尝试 interpolate
:
# interpolate with option `method='index'` uses index as scale
# so we set `A` as index first
df['B'] = df.set_index('A')['B'].interpolate('index').values
输出:
A B
0 1.0 0.250000
1 4.5 3.797297
2 4.6 3.898649
3 4.7 4.000000
4 5.6 12.200000
5 6.8 14.400000