【问题标题】:Using loops in dataframe with row在带有行的数据框中使用循环
【发布时间】:2020-08-07 12:43:50
【问题描述】:

我正在管理一个包含自行车数据(停车号码、街道、纬度和经度、锚点等)的数据框。我的目标是创建一个函数,一方面,通过输入,在屏幕上向用户询问它所在的停车号码,然后我想验证这个号码是否在数据帧的 idunplug_station 列中我正在处理。验证后,下一级将保存两个变量,即停车号码的经度和纬度。

这个问题是在循环中没有正确输入我知道这可能是由于缩进或类似的东西,同样当我生成一个 else 我也有问题,因为它打印它。

result_destino = ""
origen = int(input("Indica el nº de la estación donde te encuentras: "))
destino = int(input("Indica el nº de la estación a donde vas: "))
for i, row in stations_2019.iterrows(): #tomo como referencia el dataframe de estaciones 2019 para obtener latitud y longitud
    if i == origen:
      result_origen = row[10], row[11]
    else:
      print("No existe esa estación")

for j, row in stations_2019.iterrows():   
      if j == destino:
        result_destino = row[10], row[11]
      else:
      print("No existe esa estación")

print(result_origen)
print(result_destino)

【问题讨论】:

  • “这个问题是在循环中没有正确输入”你有什么错误吗?
  • 如当前所示,第二个else 块无论如何都会给出IndentationError(第二个print 需要缩进更多)

标签: python dataframe loops input


【解决方案1】:

您的循环需要如下所示:

for i, row in stations_2019.iterrows(): 
    if i == origen:
        result_origen = row[10], row[11]
        break
else:
    print("No existe esa estación")  # means: "that station doesn't exist"

elsefor 一起使用,如果循环完成而没有遇到break,则执行。与if 含义不同,但关键字相同。

您可能还想在else 块中执行其他操作以防止继续执行,或者稍后当您尝试使用result_origen 时会遇到NameError。例如,您可以引发异常,或者 return 如果它在函数内部。或者,如果不是,那么至少确保将 result_origen 设置为某个值(可能是 None'')。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-10
    • 2020-08-22
    • 2021-12-23
    • 1970-01-01
    • 1970-01-01
    • 2020-03-08
    相关资源
    最近更新 更多