[英]Pandas: Apply a function aware of column type to every column of a data frame
[英]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.