我正在通过读取大熊猫中的csv文件来建立数据帧,列代表一维位置自变量中不同样本的点,行分别代表0.01s的时间段。我想创建一个新的数据框来表示速度和加速度(因此基本上将操作[point(i)-point(i-1)]/0.01)
应用于数据框中的每个单元格。
我在使用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时,仅为速度提供了一个参数。我不知道如何提供第二个参数,以便它输出适当的新数据帧,并在每个单元格中计算出速度。
答案 0 :(得分:0)
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