Pandas / Python, как создать среднее для указанных значений переменных? - PullRequest
0 голосов
/ 14 октября 2019

Я новичок в использовании Pandas / python, и мне хотелось бы знать, когда у меня есть набор данных, как я могу создать среднее значение для переменной, объема, для каждого значения другой переменной, цены, если переменная часа находится между некоторымиконкретные значения, скажем, от 1 до 10. Чтобы лучше понять, у меня есть следующее:

excel-columns

Я хочу получить следующую ценуи столбцы объема в зеленом;которые являются средним объемом для каждой цены, когда 1 <= час <= 10. </p>

result

Я был бы очень признателен за вашу помощь!

Заранее спасибо!

1 Ответ

1 голос
/ 14 октября 2019

Быстрый совет: если вы отправляете вопрос, пожалуйста, предоставьте начальный код о том, как создать кадр данных (а не публиковать снимок экрана), потому что это облегчает людям, помогающим вам.

Шаг 1: фильтрваш фрейм данных с использованием маски

Шаг 2: создайте новый фрейм данных с использованием маски

Шаг 3: используйте объект groupby

import pandas as pd

# sample dataframe
df = pd.DataFrame({
    'Hour': [1, 1, 1, 4, 4, 4, 16, 16, 16],
    'Price': [-3000, -262, 150, -3000, -262, 150, -3000, -262, 150],
    'Volume': [8133, 28287, 19289, 20242, 19428, 28322, 18147, 17234, 12133],
})

print('Raw dataframe:')
print(df, '\n')

# first create a mask that filters the data you want
mask_hour_1to10 = df['Hour'].between(1, 10)

# second create a new dataframe with the mask
df_filtered = df.loc[mask_hour_1to10]

print('Filtered dataframe:')
print(df_filtered, '\n')

# third, use a groupby object on price, to calculate average of volume
df_groupby_mean = df_filtered.groupby('Price')['Volume'].mean()

print('Groupby Object:')
print(df_groupby_mean)

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...