2024-04-17 20:57:37 发布
网友
我想找到某列中值的累计和超过阈值的行(索引)。在
我可以用一个简单的循环找到这个位置,如下所示:
def sum_to(df, col, threshold): s = 0 for r in df.iterrows(): if s + r[1][col] > threshold: return r[0] else: s += r[1][col] return len(df)
不过,我想知道在熊猫身上是否有更好/更好的方法来实现这一点。在
所以你想要这样的东西:
df = pd.DataFrame({'A': [1, 2, 3, 4, 5]}) df[df['A'].cumsum() > 5] # A #2 3 #3 4 #4 5
最简单的方法是
df[col].cumsum().searchsorted(threshold)
但这假设您的列中没有负数。在
所以你想要这样的东西:
最简单的方法是
但这假设您的列中没有负数。在
相关问题 更多 >
编程相关推荐