鉴于此类数据框a
和idx
:
import pandas as pd
import numpy as np
idx = np.array([False, False, True, True, False])
a = pd.Dataframe(np.full((5),0))
我想将n
添加到a
,n
表示每个值的位置前True
的数量。因此,a
应该变为:0,0,1,2,2
。你知道如何以矢量化的方式做到这一点吗?谢谢!
答案 0 :(得分:0)
你想要的{II} cumsum
:
In [106]:
pd.DataFrame(idx).cumsum()
Out[106]:
0
0 0
1 0
2 1
3 2
4 2
您的问题有点不清楚,但您可以使用布尔数组本身并调用cumsum
,这会将True
转换为1