Как добавить значения в список с помощью groupby?

df = pd.read_json(prices.json, orient = "records")    
df.groupby("Prices")["Discounts"].mean()


Prices
421.0     93.243137
415.0     91.830721
147.0     96.098335
451.0     98.308000
532.0     99.589286
             ...
1333.0    91.655944
7124.0    94.670829
1315.0    97.975439
6316.0    91.800000
1334.0    99.081081

У меня есть два вопроса.

Первый:

Как я могу добавить значения столбца «Цены» в список? Применение метода to_list к приведенному ниже коду добавляет к списку только средние скидки, но мне также нужно отдельно извлечь первый столбец (Цены) в список.

prices_column = []
discounts_column = []

discounts_column.extend(df.groupby("Prices")["Discounts"].mean().to_list())

Второй:

Как я могу округлить средние числа скидок (второй столбец) до ближайшей сотни при добавлении значений в список?

Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
0
0
121
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Что-то вроде этого

df = pd.DataFrame({'A': [1, 1, 2, 1],
                   'B': [1010.1112, 1300.009, 749.78, 900.98]})

df_dict = df.groupby('A')['B'].mean().round(2).to_dict()
a_column = list(df_dict.keys())
b_column = list(df_dict.values())

с результатом

[1, 2]
[1070.37, 749.78]

что ты ищешь?

a_column дает желаемый результат, но b_column в моем случае печатает только 100.

Shirin 12.12.2020 20:51

@Alexander Александр Вероятно, это потому, что ближайшие 100 к среднему значению равны 100 (для примеров значений это определенно так). Может быть, я неправильно понял, что вы имеете в виду под "ближайшей сотней"?

Timus 12.12.2020 21:01

например, 100,5678 должно быть 100,57.

Shirin 12.12.2020 21:03

@Александр Понятно. Обновил мой ответ.

Timus 12.12.2020 21:05

Другие вопросы по теме