pandas时间处理问题,如何取得某个时刻对应的值?

发布于 2022-09-11 18:17:35 字数 377 浏览 19 评论 0

假设我有俩份数据,俩个DataFrame,如下:
df1:
time,value
1 , 0.1
2 , 0.2
3 , 0.3
4 , 0.4

df2:
time, value
3.103 , 10
3.106 , 20
3.109 , 30
3.112 ,40

现在我想取得df2.value=20时,df1的value,需要如何写?
思路是df2.value = 20 取得 time = 3.106
然后如果是 df1[df1.time == 3.106].value 取出来是空的,如何取到df1里面time最接近3.106的值?在这个例子我就需要取到 0.3

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

天生の放荡 2022-09-18 18:17:35

最接近的话, 按此题来说, round()函数最合适不过了:
内置函数的round(),用来四舍五入,第二个参数是保留小数点后多少位,默认是0

time = 3.106
df1[df1.time == round(time)].value

或者更一般的,不用 round()函数:

temp_df = df1.time - time # 求两两之间的差
temp_df = abs(temp_df) # 取绝对值
index = temp_df.idxmin() # 取最小值的索引

print(df1.value[index])
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文