如何在第一行值最大的数据帧上循环,并动态地更新for循环中的iterables

2024-09-29 22:28:38 发布

您现在位置:Python中文网/ 问答频道 /正文

我在下面给出了一个数据框。这个数据框只显示了一辆汽车(QAZX),它在城市间运送不同体积的包裹。不同的城市在1,2,3,4,5,6中给出。。。。。。。。。第一行是我最重要的一行,因为它包含了我的汽车所承载的最高容量值。我有55辆这样的车。(QAZX,MNGH,NBTR,CVRT…)我想把它们都绕过去。不同的汽车有不同的无载货量的城市列表

我想写一个for循环,这样我就可以循环它们并动态地更新我的iterables列表,而不必更改我的汽车名称和每个iterables的iterables。 以下是我的数据集:

Car Name    Volume  Route
QAZX        3418    [4, 5, 6, 7]
QAZX        2617    [4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]
QAZX        2430    [1, 2, 3, 4, 5, 6, 7]
QAZX        1871    [1, 2, 3]
QAZX        1442    [1, 2, 3, 4]
QAZX        1292    [4, 5, 6, 7]
QAZX        1039    [11, 12, 13, 14, 15]
QAZX        1036    [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]
QAZX         892    [1, 2, 3]
QAZX         692    [1, 2, 3, 4]
QAZX         99     [1, 2, 3, 4, 5, 6, 7]
QAZX         54     [1, 2, 3]


import numpy as np
import pandas as pd

car = car[car.Car_Name == QAZX]
car = car['Route'].to_frame().argmax().values
print(car)
for vol,row in [car[car.Route].iterrows()]:
print(vol)
print(row)

我还尝试了这个循环,以一辆车为例。我现在想在DF上复制55辆这样的车

  a=   [4, 5, 6, 7]
  b=   [4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]
  c=   [1, 2, 3, 4, 5, 6, 7]
  d=   [1, 2, 3]
  e =  [1, 2, 3, 4] 
  f =  [4, 5, 6, 7]
  g =  [11, 12, 13, 14, 15]
  h =   [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]
  i =   [1, 2, 3]
  j =   [1, 2, 3, 4]
  k =    [1, 2, 3, 4, 5, 6, 7]
  l =     [1, 2, 3]

  route = a
  for route in [b,c,d,e,f,g,h,i,j,k,l]: 
  print("Testing Car: " + str(car) + " against route: " + str(route))

下面的示例代码成功运行,但当我对DF执行相同操作时,它表示DataFrame'object没有属性'argmax'


Tags: 数据nameimport列表forascarroute

热门问题