【问题标题】:How to compare CSV column data如何比较 CSV 列数据
【发布时间】:2018-11-29 20:24:10
【问题描述】:

我有一个包含 2 个相关列的巨大 CSV 文件。时间和速度。数据是在开车时创建的。

现在,我想比较一些速度列的值,以判断汽车是加速还是变慢,并将其放入一个“加速”的新数据帧中。

例如:

if speed (row 1) < speed (row2) car is accelerating.

【问题讨论】:

  • 为什么不用numpy的diff函数来获取速度的梯度呢?如果时间间隔是均匀的,那么它是准确的加速,如果不是,那么它仍然显示汽车是加速还是减速。
  • 你的意思是如果 speed (row 1) row 2) ?
  • 是的,第 1 行和第 2 行抱歉
  • 并非如此。我会检查它

标签: python pandas csv numpy dataframe


【解决方案1】:

使用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]的Pandorable简写。

【讨论】:

  • 大声笑,我的编辑让它更流行兄弟。使用正确的语法,但更危险
  • @ℕʘʘḆḽḘ,哈,这是一个意见。在我看来,直接用布尔系列索引数据框是很自然的。为什么会更危险?
  • :) 不用担心,我也很好
  • 呃,这不是“pandonic”或“pandorable”。维护者使用“pandaic”,我们可以坚持下去吗
  • @coldspeed,不用打开潘多拉魔盒!
猜你喜欢
  • 2018-05-10
  • 2016-06-08
  • 1970-01-01
  • 1970-01-01
  • 2020-11-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多