Группировать строки с использованием Pandas в PythonPython

Программы на Python
Ответить
Anonymous
 Группировать строки с использованием Pandas в Python

Сообщение Anonymous »

Мне нужно понять, как сгруппировать данные CSV. В настоящее время мои данные сжаты до необходимого уровня, но я не уверен, как их группировать. Мне нужно сгруппировать по нескольким критериям. Мне нужны данные, сгруппированные по диапазонам среднего веса. 200-299, 300-399 и т. д. Его также нужно сгруппировать по тому, много ли значений desc. Например, все строки со значением класса «Steers», средним весом от 300 до 399 и без значения описания лота будут составлять одну группу. Другой будет таким же, но с большим значением desc.
Это работает, но не совсем так, как я хочу, судя по скриншоту, который я предоставил. В настоящее время мой код сортирует его таким образом, чтобы каждый класс отображался без «описания лота», отсортированный по весу. Затем он проходит и делает то же самое для каждого «описания лота».
Вот мой текущий код:

Код: Выделить всё

def calculate() :
print("Calculate...")
global dataFrame
df = dataFrame

calculationHeaders = ["class", "lot desc", "head count", "avg weight", "avg price"]
df = df[calculationHeaders]

rowsToRemove = ["Bred Heifers", "Dairy Cows", "Dairy Heifers", "Dairy Steers", "Dairy/Beef Heifers", "Dairy/Beef Steers", "Heifer Pairs"]
columnName = "class"
try:
for row in rowsToRemove:
df = df[df[columnName] != row]

df["lot desc"] = df["lot desc"].fillna("")

classCategories = ["Bulls", "Steers", "Heifers", "Cow-Calf Pairs", "Cows", "Bred Cows"]
df["class"] = pd.Categorical(df["class"], categories=classCategories)

descCategories = ["", "Value Added", "Thin Fleshed", "Guaranteed Open", "Fancy"]
df["lot desc"] = pd.Categorical(df["lot desc"], categories=descCategories)

df = df.sort_values(by=["class", "lot desc", "avg weight"])

df.to_csv("steers.csv")
except Exception as e:
raise Exception("Calulate error...")
На снимке экрана показано то, что мне нужно. Выделенные строки имеют большое значение desc.
Изображение


Подробнее здесь: https://stackoverflow.com/questions/792 ... -in-python
Ответить

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

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

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

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

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