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())
Второй:
Как я могу округлить средние числа скидок (второй столбец) до ближайшей сотни при добавлении значений в список?
Что-то вроде этого
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]
что ты ищешь?
@Alexander Александр Вероятно, это потому, что ближайшие 100 к среднему значению равны 100 (для примеров значений это определенно так). Может быть, я неправильно понял, что вы имеете в виду под "ближайшей сотней"?
например, 100,5678 должно быть 100,57.
@Александр Понятно. Обновил мой ответ.
a_column дает желаемый результат, но b_column в моем случае печатает только 100.