Не храните тип list
в столбцах pandas
, это неэффективно, и это затруднит взаимодействие с вашими данными. Просто разверните ваши списки по столбцам:
out = pd.DataFrame(df.htgt.values.tolist())
0 1 2 3
0 16 69.0 NaN NaN
1 61 79.0 NaN NaN
2 10 69.0 NaN NaN
3 81 NaN NaN NaN
4 12 30.0 45.0 68.0
5 10 76.0 NaN NaN
6 9 39.0 NaN NaN
7 67 69.0 77.0 NaN
Теперь вы можете использовать эффективные pandas
операции для поиска строк с 10
:
out.loc[out.eq(10).any(1)]
0 1 2 3
2 10 69.0 NaN NaN
5 10 76.0 NaN NaN
Если вы настаиваете на результате, находящемся в форме list
, вы можете использовать stack
и agg
:
out.loc[out.eq(10).any(1)].stack().groupby(level=0).agg(list)
2 [10.0, 69.0]
5 [10.0, 76.0]
dtype: object