Skip to content Skip to sidebar Skip to footer

How To Manipulate Data In Arrays Using Pandas (and Resetting Evaluations)

I've revised the question for clarity and removed artifacts and inconsistencies - please reopen for consideration by the community. One contributor already thinks a solution might

Solution 1:

Try:

import pandas as pd
import numpy as np

df = pd.DataFrame({'col0':[1,2,3,4,5,6,7,8,9]
              ,'col1':[5,4.9,5.5,3.5,3.1,4.5,5.5,1.2,5.8]
              ,'col2':[2.5,2.45,2.75,1.75,1.55,2.25,2.75,0.6,2.9]
              ,'col3':[np.nan,2.45,2.75,2.75,2.75,2.75,2.75,2.75,2.9]
              })


threshold = 2.71

grp = df['col2'].ge(threshold).cumsum().shift().bfill()

df['col3'] = df['col2'].groupby(grp).transform(lambda x: x.shift(-1).cummax().shift())

print(df)

Output:

   col0  col1  col2  col3
015.02.50NaN124.92.452.45235.52.752.75343.51.75NaN453.11.551.55564.52.252.25675.52.752.75781.20.60NaN895.82.902.90

Details:

Create grouping using greater or equal to threshold, then apply the same logic to each group withn at the dataframe using groupby with transform.

Post a Comment for "How To Manipulate Data In Arrays Using Pandas (and Resetting Evaluations)"