Python - 通过熊猫数据帧进行迭代,并分配和有条件地更新日期时间变量



我是Python新手,想知道是否有人可以帮助我。

我想遍历 pandas 数据框中的日期时间列,同时每次迭代都使用最新时间更新一个变量。假设这是我的数据:

    Time
06:12:50
06:13:51
06:13:51
06:13:50
06:14:51
06:14:49

对于我的结果,我希望它看起来像这样:

RecentTime:
   06:12:50
   06:13:51
   06:13:51
   06:13:51
   06:14:51
   06:14:51

我认为代码应该看起来像这样,但我遇到了麻烦,无法弄清楚为什么。这是我的代码:

RecentTime = [] # Store list of most recent time for each row
Index: None       # Create empty variable
# Loop through 
for index, row in data.iterrows():
    index = row['Time']   # Save value as index
    if index >= row['Time']: # If time is greater than current row
    index = row['Time']
        RecentTime.append(index) # Append most recent variable into list
    else:
        continue

出于某种原因,这是我的结果:

RecentTime
  06:12:50
  06:13:51
  06:13:51
  06:13:50
  06:14:51
  06:14:49

每次通过循环时,您都在检查不等式之前写入变量index,因此

if index >= row['Time']:

不仅总是True,而且在检查此不等式之前,您始终将索引设置为等于当前时间。根据您描述中的模式,即所需结果时间永远不会早于上一行,我认为您正在寻找更像这样的东西:

RecentTime = [] # Store list of most recent time for each row
priortime = None
# Loop through 
for index, row in data.iterrows():
    currenttime = row['Time']
    if priortime is None:
        priortime = currenttime
    if priortime > currenttime: # If prior time is greater than current row
        currenttime = priortime
    priortime = currenttime    
    RecentTime.append(currenttime)

最后,行Index: None应抛出错误SyntaxError: invalid syntax。假设您要为变量赋值,请使用 Index = None . index ,小写,已经在数据帧循环中用于引用数据帧中的索引值,因此即使大写的Index变量不会冲突,也应该将其命名为其他名称。

相关内容

  • 没有找到相关文章

最新更新