我有一个巨大的CSV文件,其中包含2个相关列。时间和速度。数据是在开车时创建的。
现在,我想比较一下速度列的一些值,以便得出汽车是在加速还是在变慢,并将其放入新的数据帧“正在加速”。
例如:
if speed (row 1) < speed (row2) car is accelerating.
答案 0 :(得分:5)
使用pd.Series.diff
创建一个布尔序列:
df = pd.DataFrame({'speed': [1.41, 5.341, 10.3412, 3.341, 456.432]})
df['accelerating'] = df['speed'].diff() > 0
print(df)
speed accelerating
0 1.4100 False
1 5.3410 True
2 10.3412 True
3 3.3410 False
4 456.4320 True
然后加速行的过滤很简单:
df_acc = df[df['accelerating']]
print(df_acc)
speed accelerating
1 5.3410 True
2 10.3412 True
4 456.4320 True
以上是df_acc = df.loc[df['accelerating'] == True]
的“可售”速记。