#pandas #grouping
Вопрос:
В моем наборе данных, который находится в файлах parquet,у меня есть разные данные с установленными столбцами. Те, которые меня интересуют, — это штат, идентификаторы и даты. Я хотел бы сгруппировать данные по штатам, а затем подсчитать различные идентификаторы в месяц. Однако даты уже указаны в формате ГГГГ-ММ-ДД, поэтому, когда я выполняю свой запрос:
df.groupby(["state", "date"])["id"].count()
Мой результат-подсчет для каждой даты отдельно для каждого штата.
Как я мог бы изменить его, чтобы он повторялся по месяцам отдельно, не изменяя все файлы данных?
Ответ №1:
Поскольку вы не предоставили фиктивные данные для тестирования, вы можете попробовать:
Во-первых, убедитесь, что ваш столбец даты имеет тип datetime:
df['date']=pd.to_datetime(df['date'])
Затем:
out=df.groupby(['state',pd.Grouper(key='date',freq='m')])['id'].nunique()
или
out=df.groupby(['state',df.pop('date').dt.floor('m')])['id'].nunique()