【问题标题】:Python Interpolate two columns dataPython插入两列数据
【发布时间】:2022-01-09 02:27:30
【问题描述】:

我有两列。我想在x-col 中插值y-col 以进行相同的插值。

问题:

df = pd.DataFrame({'x':[1,3,5],'y':[10,30,50] })

df = 
   x   y
0  1  10
1  3  30
2  5  50

预期答案:

# interpolate x values
df = 
   x   y
0  1  10
1  2  NaN
2  3  30
3  4  NaN
4  5  50

# based on x-values, interpolate y-values.
df = 
   x   y
0  1  10
1  2  20
2  3  30
3  4  40
4  5  50

现有答案:

我遇到了尝试映射/拟合整个 x 数据然后重新采样的现有答案。这不是我想要的。一次插入两个值就足够了。

【问题讨论】:

  • 你想如何插入 x 值?你想添加两个连续值的平均值吗?或者你想要所有的整数?

标签: python pandas dataframe numpy interpolation


【解决方案1】:

要创建您的第一个 df(基于 x 的插值),您可以使用 range.然后你可以使用 interpolate 函数进行插值。

df2 = pd.DataFrame({'x':range(df.x.min(), df.x.max()+1)}).merge(df, on='x', how='left')
df2.y = df2.y.interpolate()
df2
    x   y
0   1   10.0
1   2   20.0
2   3   30.0
3   4   40.0
4   5   50.0

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-04-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-12
    • 1970-01-01
    • 2015-06-05
    相关资源
    最近更新 更多