繁体   English   中英

Pandas是否可以将多输入功能应用于数据帧中的每个单元?

[英]Pandas function to apply multi input function to every cell in data frame?

我通过读取pandas中的csv文件来设置数据帧,这些列表示不同样本的一维位置参数中的点,每行代表0.01s时间段。 我想创建一个新的数据帧来表示速度和加速度(所以基本上将操作[point(i)-point(i-1)]/0.01)应用于数据帧中的每个单元格。

我在使用pandas.applymap或其他方法时遇到了麻烦,因为我不太清楚如何在每个操作的数据pandas.applymap引用多个参数,如果这有意义的话。

    import pandas as pd
    import numpy as np

    data = pd.read_csv("file_name")
    def velocity(xf, xi):
        v = (xf - xi)*100
        return v

    velocity = data.applymap(velocity)

这就是原始数据框的前几个列和行的样子:

    X LFHD   Y LFHD   Z LFHD   X RFHD   Y RFHD
0  700.003 -1769.61  1556.05  811.922 -1878.46
1  699.728 -1769.50  1555.99  811.942 -1878.14
2  699.465 -1769.38  1555.99  811.980 -1877.81
3  699.118 -1769.38  1555.83  812.005 -1877.48
4  699.017 -1768.78  1556.19  812.003 -1877.11

对于每列中的每个位置值,我想计算初始位置值是上面的单元格的速度(xi作为速度函数中的输入),最终位置值是所讨论的单元格(xf)。

当我尝试运行上面的代码时,它给了我一个错误,因为只有一个参数提供了速度,当它期望2.我不知道如何提供第二个参数,以便它输出正确的新数据帧用每个细胞计算的速度。

df_velocity = data.diff()*100

df_velocity
Out[6]: 
   X_LFHD  Y_LFHD  Z_LFHD  X_RFHD  Y_RFHD
0     NaN     NaN     NaN     NaN     NaN
1   -27.5    11.0    -6.0     2.0    32.0
2   -26.3    12.0     0.0     3.8    33.0
3   -34.7     0.0   -16.0     2.5    33.0
4   -10.1    60.0    36.0    -0.2    37.0

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM