import pandas as pd
import numpy as np
data = {'dateTimeGmt': {0: pd.Timestamp('2020-01-01 06:44:00'),
1: pd.Timestamp('2020-01-01 06:45:00'), 2: pd.Timestamp('2020-01-01 07:11:00'), 3: pd.Timestamp('2020-01-01 07:12:00'), 4: pd.Timestamp('2020-01-01 07:12:00'), 5: pd.Timestamp('2020-01-01 07:14:00'), 6: pd.Timestamp('2020-01-01 10:04:00'), 7: pd.Timestamp('2020-01-01 10:04:00'), 8: pd.Timestamp('2020-01-01 11:45:00'), 9: pd.Timestamp('2020-01-01 06:45:00')},
'id': {0: 4, 1: 4, 2: 4, 3: 5, 4: 5, 5: 5, 6: 5, 7: 6, 8: 6, 9: 6},
'name': {0: 'four', 1: 'four', 2: 'four', 3: 'five', 4: 'five', 5: 'five', 6: 'five', 7: 'six', 8: 'six', 9: 'six'}, 'a': {0: 1.0, 1: np.nan, 2: np.nan, 3: np.nan, 4: np.nan, 5: np.nan, 6: np.nan, 7: 5.0, 8: np.nan, 9: np.nan}, 'b': {0: np.nan, 1: 3.0, 2: np.nan, 3: np.nan, 4: np.nan, 5: np.nan, 6: np.nan, 7: np.nan, 8: np.nan, 9: 3.0}, 'c': {0: np.nan, 1: np.nan, 2: np.nan, 3: np.nan, 4: 2.0, 5: np.nan, 6: np.nan, 7: np.nan, 8: 0.0, 9: np.nan}}
df = pd.DataFrame(data)
Я хотел бы сгладить мой фрейм данных таким образом, чтобы все столбцы после name
были сгруппированы по часам в dateTimeGmt
, а затем по id
/ name
.
Я пытался df2 = df.groupby([df.dateTimeGmt.dt.date, df.dateTimeGmt.dt.hour, df.id, df.name]).sum()
Кажется, это работает, но объединяет все мои столбцы группировки в индексе.
df3 = df.groupby([df.dateTimeGmt.dt.date, df.dateTimeGmt.dt.hour, df.id, df.name], as_index = False).sum()
сохраняет id
и name
, но данные dateTimeGmt
теряются.
Как сделать Я группирую свои данные, не теряя столбцы, сгруппированные по?