【问题标题】:How to plot selective data from a text file? [closed]如何从文本文件中绘制选择性数据? [关闭]
【发布时间】:2013-09-15 23:50:00
【问题描述】:

我只想绘制跟随卡车(车辆 class= 3)的汽车(车辆 class= 2)的车辆(车辆 ID)的车辆加速度和速度(简单线图)。
我有一个 DataFrame 如下:

  Vehicle ID  Vehicle Class  Lane ID Preced Veh ID  Local Y  Vehicle V  Vehicle A
0          j              2        2             0      6.0       45.0       0.50
1          i              3        2             j      5.5       37.5      -1.60
2          h              2        2             i      4.0       39.0       1.00
3          g              2        2             h      2.8       40.0       0.67
4          f              2        2             g      1.4       42.0       0.70
5          e              1        2             f      0.4       41.0       0.50
6          d              2        1             e      5.5       43.0       0.80
7          c              3        1             d      4.0       36.0      -1.30
8          b              3        1             c      2.8       34.5      -1.00
9          a              2        1             b      1.4       40.0       0.91

我无法弄清楚代码只选择跟随卡车的汽车(2 跟随 3)然后绘制它们。

注意:我创建此文件是为了方便我编写代码,但实际上,该文本文件有 18 列和超过一百万行。

【问题讨论】:

  • 这是一个文本文件。我只使用 excel 创建图像
  • 到目前为止您尝试了哪些操作,您发现 pandas 文档的哪些元素不清楚?
  • 其实我并不清楚选择部分应该怎么做。我尝试了排序功能,但它只按车辆类型对数据进行排序。

标签: python python-2.7 pandas enthought


【解决方案1】:

您可以使用 shift 查看上一个车辆类别:

In [11]: df['Vehicle Class'].shift()
Out[11]: 
0   NaN
1     2
2     3
3     2
4     2
5     2
6     1
7     2
8     3
9     3
Name: Vehicle Class, dtype: float64

并选择那些具有 2 级但之前的车辆是 3 级的车辆:

In [12]: df[(df['Vehicle Class'] == 2) & (df['Vehicle Class'].shift() == 3)]
Out[12]: 
  Vehicle ID  Vehicle Class  Lane ID Preced Veh ID  Local Y  Vehicle V  Vehicle A
2          h              2        2             i      4.0         39       1.00
9          a              2        1             b      1.4         40       0.91

我不清楚你想如何绘制这个结果......

【讨论】:

  • 感谢保罗和安迪。我现在有点想法了。 @Andy,如果 shift() 无法获取前面的车辆类别怎么办?我知道 shift() 在这里工作得很好,但如果不是这样,我如何从数据中创建一个新的“前车类”列(取决于前车 ID 和车辆类列)?
  • @UmairDurrani 有点乱而且会更慢:df1 = df.set_index('Vehicle ID'); df1['Preced Veh ID'].apply(lambda x: df1.loc[x, 'Vehicle Class'] if (pd.notnull(x) and x != '0') else x)
猜你喜欢
  • 1970-01-01
  • 2021-02-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-29
  • 1970-01-01
  • 2020-07-02
  • 1970-01-01
相关资源
最近更新 更多