【发布时间】:2018-07-10 22:02:42
【问题描述】:
我有一个如下所示的数据框,其中包含航班搜索结果的数据
search_id total_fare changes_airport
abc 101 False
abc 121 True
abc 105 True
abd 120 True
现在我想添加一个名为“alternatives”的列,如果有另一行,则每行返回 True:
相同的search_id
total_fare 相差不到 10
changes_airport == False
我正在尝试类似:
for index, row in df.iterrows():
df.loc[row,'alternatives']=bool(dfs[(df.changes_airport==False)&_
(df.search_id==row['search_id'])&_
(df.total_fare<row['total_fare']+10)].shape[0])
我发现困难的是遍历行并同时分析数据帧的其余部分。
我想知道正确的语法,或许还有更有效的执行方式。
谢谢!
【问题讨论】:
-
total_fare差异小于10是什么意思?您还可以发布上述示例 df 的预期输出吗?
-
第三行应该返回 True,因为还有另一行(第 1 行)具有相同的 search_id、changes_airport==False 并且 105-101 小于 10
标签: python pandas loops iteration