return 按数据帧线性插值列出

return list by dataframe linear interpolation

我有一个数据框,假设有 5 个条目。

moment stress strain
0 0.12 13 0.11
1 0.23 14 0.12
2 0.56 15 0.56

我想根据应变的线性插值 = 0.45

以 [moment, stress, strain] 的顺序得到一维浮点列表

我从 pandas 阅读了几个讨论 interpolate() 方法的线程。但是当你有Nan条目,你填数字的时候就用了。

如何用我的案例完成类似的任务?

谢谢

一种方法是使用 NaN 值向数据框中添加新行并对其进行排序:

df = df.append(
    {"moment": np.nan, "stress": np.nan, "strain": 0.45}, ignore_index=True
)
df = df.sort_values(by="strain").set_index("strain")
df = df.interpolate(method="index")
print(df)

打印:

        moment  stress
strain                
0.11    0.1200   13.00
0.12    0.2300   14.00
0.45    0.4775   14.75
0.56    0.5600   15.00

要取回值:

df = df.reset_index()
print(
    df.loc[df.strain == 0.45, ["moment", "stress", "strain"]]
    .to_numpy()
    .tolist()[0]
)

打印:

[0.47750000000000004, 14.75, 0.45]