В Pandas, как я могу включить столбец даты, по которому я группируюсь, в список столбцов на фрейме данных? - PullRequest
0 голосов
/ 31 октября 2019

У меня есть фрейм данных, который начинается примерно так:

df = pd.DataFrame()
df['orders'] = orders_df.groupby(['d'])['order_id'].count()
print(df.columns)

Когда я делаю вышеизложенное, в выводе df.columns отсутствует столбец "d" - почему это так?

Во-вторых, я не могу df.rename({'d':'date'})

Есть какие-нибудь идеи, как мне этого добиться?

Ответы [ 2 ]

0 голосов
/ 31 октября 2019

Сначала вы получите series, а столбцы d - это index

orders_df.groupby(['d'])['order_id'].count()

Исправьте это

df = pd.DataFrame()
df['orders'] = orders_df.groupby(['d'])['order_id'].count()
df=df.reset_index().rename(columns={'index':'d'})
0 голосов
/ 31 октября 2019

Вы можете сгруппировать с as_index=False:

Настройка

import pandas as pd

orders_df = pd.DataFrame({'order_id' : [1, 2, 3, 4], 'd' : [2, 2, 3, 3]})

Код

df = pd.DataFrame()
df[['d', 'orders']] = orders_df.groupby(['d'], as_index=False)['order_id'].count()

print(df)

Вывод

   d  orders
0  2       2
1  3       2

Наконец вам нужно использовать переименовать с axis=1:

print(df.rename({'d': 'date'}, axis=1))

Выход

   date  orders
0     2       2
1     3       2
...