Сортировка DataFrame по нескольким условиям в PandasPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Сортировка DataFrame по нескольким условиям в Pandas

Сообщение Anonymous »

Я борюсь с определенным видом, который мне не удается реализовать в Python.
Вот пример кадра данных
import pandas as pd

data = {
'product': ['A', 'A', 'A', 'B', 'B', 'B'],
'quantity': [0, 1, 2, 0, 1, 2],
'cost': [0, 5, 3, 2, 4, 4]
}

df = pd.DataFrame(data)

Я бы хотел, чтобы кадр данных был отсортирован по стоимости ASC «по возможности», но количество должно быть заказано строго по ASC для каждого продукта.
Таким образом, результат будет таким.



продукт
количество
стоимость




A
0
0


B
0
2< /td>


B
1
4


B
2
4


A
1
5


A
2
< td>3



Здесь мы видим, что стоимость равна строго не упорядочен ASC (см. строку 5).
Но это единственный способ упорядочить набор данных, соблюдая порядок количества внутри продукта.
Я тщательно пробовал несколько способов искал на форумах и спрашивал ChatGPT, но пока безуспешно.
import pandas as pd

# Exemple de DataFrame
data = {
'product': ['A', 'A', 'A', 'B', 'B', 'B'],
'quantity': [0, 1, 2, 0, 1, 2],
'cost': [0, 5, 3, 2, 4, 6]
}
df = pd.DataFrame(data)

# Trier d'abord par 'produit' et 'quantité' croissante
df_sorted = df.sort_values(by=['product', 'cost'])

# Ensuite, trier par 'gain' décroissant avec un tri stable pour maintenir l'ordre précédent
df_sorted = df_sorted.sort_values(by='quantity', ascending=True, kind='mergesort')

print(df_sorted)



Подробнее здесь: https://stackoverflow.com/questions/787 ... -in-pandas
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»