use*_*205 5 python numpy pandas
我试图找到最大值,因为在熊猫数据帧中条件是真的.我已经搜索了类似的问题并阅读了文档,但未能找到这个问题.为了说明,我想要一个将返回下面的maxsince列的函数.
In [84]: df
Out[84]:
a b maxsince
2007-04-27 11:00:00 1 True 1
2007-04-27 11:30:00 5 False 5
2007-04-27 12:00:00 3 False 5
2007-04-27 12:30:00 2 True 2
2007-04-27 13:00:00 2 False 2
2007-04-27 13:30:00 7 True 7
2007-04-27 14:00:00 3 False 7
2007-04-27 14:30:00 4 False 7
Run Code Online (Sandbox Code Playgroud)
我无法通过循环计算这个问题.什么是最有效的方式?谢谢.
DSM*_*DSM 11
怎么样:
>>> df.groupby(df["b"].cumsum())["a"].cummax()
2007-04-27 11:00:00 1
11:30:00 5
12:00:00 5
12:30:00 2
13:00:00 2
13:30:00 7
14:00:00 7
14:30:00 7
dtype: int64
Run Code Online (Sandbox Code Playgroud)
这是因为
>>> df["b"].cumsum()
2007-04-27 11:00:00 1
11:30:00 1
12:00:00 1
12:30:00 2
13:00:00 2
13:30:00 3
14:00:00 3
14:30:00 3
Name: b, dtype: int32
Run Code Online (Sandbox Code Playgroud)
给我们,每当我们看到了一个新的价值True.根据你想要在第一个值发生时想要发生什么,你可能需要修补它False,但我会把它作为读者的练习.; ^)
| 归档时间: |
|
| 查看次数: |
982 次 |
| 最近记录: |