Это решение предполагает, что ваш индекс непрерывный и возрастающий. Вы можете сделать .reset_index()
, если оно не непрерывно. Он также находит первое вхождение v1
в столбце col1. Надеюсь, это поможет:
import pandas as pd
d = {'col1': ['abc','bcd','string1','string2','jkl','opq']}
dfx=pd.DataFrame(d)
v1="string1"
history=pd.DataFrame()
# Get the FIRST index where col1 is equal to v1
v1_idx = dfx[dfx.col1 == v1].index[0]
# Make a list of indices to select
select_idx = np.arange(0,v1_idx+1)
# Take subset and reset index
history=dfx.loc[dfx.index.isin(select_idx)].reset_index(drop=True)
history