DataFrame上次符合条件的行索引

大佬1

import pandas as pd
import numpy as np
df = pd.DataFrame(np.random.random((10,3)), columns = ['A', 'B', 'C'])
def _get_last_index(arr):
  res = arr[arr>0.5].index  # get all index
  if len(res) == 0:  # if there's no matched result, give it nan!
    return np.nan
  return res[-1]
df["index"]=df["A"].rolling(len(df), min_periods = 1).apply(_get_last_index)
print(df)

大佬2

import pandas as pd
import numpy as np
df = pd.DataFrame(np.random.random((10, 1)), columns=['A'])
df['new'] = df.index.to_series().where(df['A'].gt(0.5)).ffill()

 

posted @ 2022-06-29 19:15  C羽言  阅读(92)  评论(0)    收藏  举报