gpt4 book ai didi

python - 根据其他数据帧从数据帧中选择值

转载 作者:太空宇宙 更新时间:2023-11-03 19:43:48 26 4
gpt4 key购买 nike

我尝试根据时间戳计算对象的位置。为此,我在 pandas 中有两个数据框。一份用于测量数据,一份用于位置。所有的运动都是简单的加速。

数据框 1 包含测量数据:

        ms        force   ...    ...    ...
1 5 20
2 10 20
3 15 25
4 20 30
5 25 20
..... (~ 6000 lines)

数据框2包含“定位数据”

        ms        speed (m/s)
1 0 0.66
2 4500 0.66
3 8000 1.3
4 16000 3.0
5 20000 3.0
.....(~300 lines)

现在我想用第二个数据帧的数据计算第一个数据帧的位置在 Excel 中,我通过使用数组公式解决了问题,但现在我必须使用 Python/Pandas,而且我找不到如何从数据框 2 中选择正确行的方法。

我的想法是做这样的事情:if

最后我想显示一个图表“force <-> way”而不是“force <-> time”

先谢谢你了

================================================== ===========================更新:与此同时,我几乎可以解决我的问题了。现在我的数据如下所示:

数据帧 2(速度数据):

        pos       v         a         t      t-end    t-start
0 -3.000 0.666667 0.000000 4.500000 4.500000 0.000000
1 0.000 0.666667 0.187037 0.071287 4.571287 4.500000
2 0.048 0.680000 0.650794 0.010244 4.581531 4.571287
3 0.055 0.686667 0.205432 0.064904 4.646435 4.581531
...
15 0.055 0.686667 0.5 0.064904 23.0 20.0
...
28 0.055 0.686667 0.6 0.064904 35.0 34.0
...
30 0.055 0.686667 0.9 0.064904 44.0 39.0

和数据帧 1(基于时间的测量):

        Fx     Fy     Fz      abs_t               expected output ('a' from DF1)
0 -13.9 170.3 45.0 0.005 0.000000
1 -14.1 151.6 38.2 0.010 0.000000
...
200 -14.1 131.4 30.4 20.015 0.5
...
300 -14.3 111.9 21.1 34.01 0.6
...
400 -14.5 95.6 13.2 40.025

所以我想检查 DF1 的时间(abs_t)并在 DF2 中搜索正确的“a”像这样的东西(伪代码):

if (DF1['t_abs'] between (DF2['t-start'], DF2['t-end']):
DF1['a'] = DF2['a']

我可以创建两个 for 循环,但它看起来像是错误的方式,而且非常慢。

我希望你理解我的问题;提供运行样本非常困难。在 Excel 中我是这样做的: excel solution array formula

最佳答案

我找到了一个非常慢的解决方案,但至少它可以工作:(

df1['a'] = 0
for index, row in df2.iterrows():
start = row['t-start']
end = row ['t-end']
a = row ['a']

df1.loc[(df1['tabs']>start)&(df1['tabs']<end), 'a'] = a

关于python - 根据其他数据帧从数据帧中选择值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60275713/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com