【发布时间】:2019-03-03 09:17:13
【问题描述】:
给定以下数据框:
pd.DataFrame([['a', 1], ['b', 3], ['c', 7], ['d', 4], ['e', 1], ['f', 2], ['g', 9], ['h', 4], ['i', 0]])
有没有更好的方法来找到最后一个局部最大值('g'),而不是反向逐行迭代并搜索大于当前行的前一行?
这是我目前正在使用的,必须有更有效的东西:
df.columns = ['x', 'y']
first = True
prev_val = None
prev_row = None
for index, row in df[::-1].iterrows():
if first:
prev_val = row['y']
prev_row = row['x']
first = False
else:
if row['y'] >= prev_val:
prev_val = row['y']
prev_row = row['x']
else:
break
【问题讨论】:
标签: python arrays pandas numpy series