Block DF
0 1.2
1 2.3
4 4.2
5 5.6
6 4.3
10 2.2
如何找出线性约。第7组的价值DF
(7,???)
使用最近的两个数据点
(6, 4.3)
(10, 2.2)?
如何实现找到最近的两个数据点?
答案 0 :(得分:1)
您可以使用numpy.interp
函数查找插值:
import numpy as np
np.interp(7, df.block, df.DF)
# >>> 3.775
更多信息here。
您还可以使用interp1d
包中的scipy.interpolate
:
from scipy.interpolation import interp1d
f = interp1d(df.block, df.DF)
xnew = np.linspace(0, 10, num=11, endpoint=True)
zip(xnew, f(xnew))
# [(0.0, 1.2),
# (1.0, 2.2999999999999998),
# (2.0, 2.9333333333333331),
# (3.0, 3.5666666666666664),
# (4.0, 4.2000000000000002),
# (5.0, 5.5999999999999996),
# (6.0, 4.2999999999999998),
# (7.0, 3.7749999999999999),
# (8.0, 3.25),
# (9.0, 2.7250000000000001),
# (10.0, 2.2000000000000002)]
答案 1 :(得分:1)
我看到了标签' pandas'在这个问题上,我试图将Pandas用于此实现。看看代码:
<style>
ul {
list-style-type: none;
}
li {
float: right;
}
li a {
display: block;
text-align: center;
padding: 14px 16px;
}
</style>
<header>
<a style="float:left" id="logo" href="#">Logo</a>
<nav >
<ul >
<li><a id="aboutus" href="#">About Us</a></li>
<li><a id="login" href="#">Log In</a></li>
</ul>
</nav>
</header>
输出应为:
0 1.200000 1 2.300000 2 2.933333 3 3.566667 4 4.200000 5 5.600000 6 4.300000 7 3.775000 8 3.250000 9 2.725000 10 2.200000 dtype:float64