#python #pandas #dataframe #mean
Вопрос:
У меня есть такой набор данных:
Я хочу брать среднее значение LCR в каждом году для WFR=1 и WFR=0 отдельно, например, в 2018 году у меня 4 WFR=0, поэтому возьмите среднее значение LCR для него, а для WFR=1 у меня есть только один. есть идеи? Спасибо
Комментарии:
1. можете ли вы вставить данные в виде текста и отформатировать в виде кода? Затрудняет копирование вставку с изображениями
Ответ №1:
Вы можете сгруппироваться по годам и годам. Это создаст все комбинации, существующие в вашем наборе данных. Если в вашем фрейме данных отсутствуют все условия, вы можете создать базовый фрейм данных со всеми условиями и объединить его с ним.
df = data_new4.groupby(['CLOSDATE_year', 'WFR'])['LCR'].mean()
для построения графика данных вы можете использовать библиотеку seaborn.
import seaborn as sns sns.lineplot(data=df, hue='WFR', x='CLOSDATE_year', y='LCR')
Комментарии:
1. как я могу построить эти LCR(среднее значение LCR) в соответствии с WFR(0 или 1) в разные годы? Я имею в виду 2 линейных графика на одном графике
2. Я добавил код, чтобы вы могли отображать данные. Не могли бы вы, пожалуйста, проголосовать и принять мой ответ.
Ответ №2:
Попробуйте с groupby
:
gt;gt;gt; data.groupby(["CLOSDATE_year", "WFR"])["LCR"].mean() CLOSDATE_year WFR 2011 1 268.750000 2012 1 235.533333 2018 0 192.775000 1 186.000000 Name: LCR, dtype: float64
Комментарии:
1. могу ли я добавить там название для среднего значения LCR? потому что у столбца нет имени
2. Это возвращает серию под названием LCR. Посмотрите на последнюю строку вывода. Если вам нужен фрейм данных, вы можете сделать
data.groupby(["CLOSDATE_year", "WFR"])["LCR"].mean().reset_index()