根据其他数据框从数据框中选择值

MiracelVip

我尝试根据时间戳计算对象的位置。为此,我在熊猫中有两个数据框。一种用于测量数据,另一种用于位置。所有的运动都是直接的加速。

数据框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)

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

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

最后,我想显示一个图“力<->方式”而不是“力<->时间”

谢谢andvance

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

数据框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中搜索corract'a',所以像这样(伪代码):

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

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

希望你理解我的问题;提供运行样本非常困难。在Excel中,我确实是这样的:excel解决方案 数组公式

MiracelVip

我发现一个很慢的解决方案,但至少可以正常工作:(

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

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

根据R中的动态值从数据框中选择列

来自分类Dev

仅从数据框中选择某些行的惯用方式(其索引存在于其他数据框中)

来自分类Dev

根据其他数据框中具有最小值/最大值的列从pandas数据框中选择值

来自分类Dev

在Shiny中选择数据框

来自分类Dev

根据其他数据框中的列设置数据框中的值

来自分类Dev

从数据框中选择无

来自分类Dev

从其他数据框替换值

来自分类Dev

根据条件选择数据框值

来自分类Dev

根据其他数据框中的列值在熊猫数据框中创建列

来自分类Dev

从其他数据框填写数据框

来自分类Dev

根据其他数据框的比较添加代表最大值的数据框

来自分类Dev

根据其他数据框中的数据添加列

来自分类Dev

从R数据框列中选择值

来自分类Dev

从索引相等的其他数据框中选择值

来自分类Dev

根据匹配值从其他数据框中复制列

来自分类Dev

scala / spark-将数据框分组并从其他列中选择值作为数据框

来自分类Dev

根据数据框中的其他列更改熊猫数据框的列值

来自分类Dev

根据重复的值从分组的数据框中选择行

来自分类Dev

根据列值从列表中选择数据框

来自分类Dev

根据R中的动态值从数据框中选择列

来自分类Dev

仅从数据框中选择某些行的惯用方式(其索引存在于其他数据框中)

来自分类Dev

根据其他数据框值创建一列

来自分类Dev

在Shiny中选择数据框

来自分类Dev

根据其他数据框熊猫从数据框中重新排序并选择子集

来自分类Dev

根据最大列值从列表中选择数据框

来自分类Dev

根据其他数据框的列映射数据框

来自分类Dev

在数据框中,从其他列中选择最易变的列

来自分类Dev

根据列值选择数据框的行

来自分类Dev

根据其他数据框过滤熊猫数据框列

Related 相关文章

  1. 1

    根据R中的动态值从数据框中选择列

  2. 2

    仅从数据框中选择某些行的惯用方式(其索引存在于其他数据框中)

  3. 3

    根据其他数据框中具有最小值/最大值的列从pandas数据框中选择值

  4. 4

    在Shiny中选择数据框

  5. 5

    根据其他数据框中的列设置数据框中的值

  6. 6

    从数据框中选择无

  7. 7

    从其他数据框替换值

  8. 8

    根据条件选择数据框值

  9. 9

    根据其他数据框中的列值在熊猫数据框中创建列

  10. 10

    从其他数据框填写数据框

  11. 11

    根据其他数据框的比较添加代表最大值的数据框

  12. 12

    根据其他数据框中的数据添加列

  13. 13

    从R数据框列中选择值

  14. 14

    从索引相等的其他数据框中选择值

  15. 15

    根据匹配值从其他数据框中复制列

  16. 16

    scala / spark-将数据框分组并从其他列中选择值作为数据框

  17. 17

    根据数据框中的其他列更改熊猫数据框的列值

  18. 18

    根据重复的值从分组的数据框中选择行

  19. 19

    根据列值从列表中选择数据框

  20. 20

    根据R中的动态值从数据框中选择列

  21. 21

    仅从数据框中选择某些行的惯用方式(其索引存在于其他数据框中)

  22. 22

    根据其他数据框值创建一列

  23. 23

    在Shiny中选择数据框

  24. 24

    根据其他数据框熊猫从数据框中重新排序并选择子集

  25. 25

    根据最大列值从列表中选择数据框

  26. 26

    根据其他数据框的列映射数据框

  27. 27

    在数据框中,从其他列中选择最易变的列

  28. 28

    根据列值选择数据框的行

  29. 29

    根据其他数据框过滤熊猫数据框列

热门标签

归档