sort pandas DataFrame со столбцом со списком - PullRequest
0 голосов
/ 20 июня 2020

Я хочу отсортировать строки этого фрейма данных на основе первого значения массива в столбце «коробки» 0,8299769, 0,04913859 в порядке убывания. Как мне это сделать.

  classes              boxes                                scores
0   7     [0.8299769, 0.27715018, 0.91143125, 0.54477763]   0.999721
2   7     [0.04913859, 0.35264254, 0.15933079, 0.64380944]  0.999397

Ответы [ 3 ]

1 голос
/ 20 июня 2020

вы можете взять первое значение нужного столбца, создать новый столбец и отсортировать этот столбец, а затем удалить его

df['new_col'] = df.boxes.apply(lambda x: x[0])
df=df.sort_values('new_col')
df=df.drop(['new_col'],axis=1)



                                             boxes
1   [0.04913859, 0.35264254, 0.15933079, 0.64380944]
0   [0.8299769, 0.27715018, 0.91143125, 0.54477763]
1 голос
/ 20 июня 2020

попробуйте это, создайте псевдо-столбец sort отсортируйте на его основе и отбросьте

df = pd.DataFrame({"classes": [7, 2], "boxes": [[0.04913859, 0.35264254, 0.15933079, 0.64380944],
                                                [0.8299769, 0.27715018, 0.91143125, 0.54477763]],
                   "scores": [0.999721, 0.999397]})

df['sort'] = df['boxes'].apply(lambda x: x[0])

df.sort_values(by='sort', ascending=False).drop(columns=['sort'])

   classes                                             boxes    scores
1        2   [0.8299769, 0.27715018, 0.91143125, 0.54477763]  0.999397
0        7  [0.04913859, 0.35264254, 0.15933079, 0.64380944]  0.999721
0 голосов
/ 20 июня 2020

Вы можете использовать класс pandas sort_values, например:

df.sort_values(by='boxes', ascending=False, inplace=True)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...