我一直在为我的熊猫数据框架构建问题而苦苦挣扎
MyDataFrame:
Index Status Value
0 A 10
1 A 8
2 A 5
3 B 9
4 B 5
5 A 1
6 B 2
7 A 3
8 A 5
9 A 1
The desired output would be:
Index Status Value
0 A 10
1 B 9
2 A 1
3 B 2
4 A 5
到目前为止,我尝试使用范围和while条件进行过滤,但是,如果我将条件设置为:
for i in range:
if Status[i] == "A":
print(Value[i])
if Status == "B":
break
**上面的代码是我一直试图实现自己目标的示例,我尝试在一段时间内使用.iloc和range,但idk的方式可能错误。*
所需的输出未打印。
使筛选过程复杂化的一件事是,每次我运行脚本时,MyDataFrame都会更改,因为它使用另一个数据基础来创建此DataFrame。
我相信我缺少一些简单的东西,但是已经快一个星期了,我不知道。
预先感谢您的所有答复和支持。
让我们尝试将其shift
与cumsum
create groupby
key一起使用,然后是groupby
+agg
out = df.groupby(df.Status.ne(df.Status.shift()).cumsum()).agg({'Status':'first','Value':'max'})
Out[14]:
Status Value
Status
1 A 10
2 B 9
3 A 1
4 B 2
5 A 5
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句