Python 在索引后用递增的值填充列行
我有一个数值列a),当a)大于100时,我需要创建一个新的数值列,该数值列为0,然后对下面的行递增1,对上面的行递增-1 比如说Python 在索引后用递增的值填充列行,python,pandas,dataframe,Python,Pandas,Dataframe,我有一个数值列a),当a)大于100时,我需要创建一个新的数值列,该数值列为0,然后对下面的行递增1,对上面的行递增-1 比如说 a b 0 -5 20 -4 40 -3 60 -2 80 -1 100 0 120 1 140 2 160 3 我设法用100后的0填充行,但现在我正努力在该索引上下增加 df_confirated_葡萄牙['day_100']=df_confirated_葡萄牙。应用(如果x['confirated']>100,则λx:0,否则-1,轴=1) 我能得到一些关
a b
0 -5
20 -4
40 -3
60 -2
80 -1
100 0
120 1
140 2
160 3
我设法用100后的0填充行,但现在我正努力在该索引上下增加
df_confirated_葡萄牙['day_100']=df_confirated_葡萄牙。应用(如果x['confirated']>100,则λx:0,否则-1,轴=1)
我能得到一些关于如何做的帮助吗
您可以从
np.arange
序列中减去大于或等于100
的第一个元素的位置:
df['b'] = np.arange(len(df)) - np.argmax(df['a'] >= 100)
只是确认一下:你的数据中正好有一个
100
?不,我甚至没有一个100,在某一行之后它会高于100,这是我的0-值,然后去找@a_guest的答案,将df['a']==100
更改为df['a']>=100
。是的,这个答案看起来非常简洁。只是有点小问题。谢谢你的输入,我忘了提到索引不是顺序的,因为这个df是一个过滤器的结果。但我确实喜欢你的建议。有什么方法可以让我的索引重新设置为0到len(df)?@LuísCosta我不明白你的意思,你能用一个例子更新你的问题吗?