Разделение дат для создания различных временных рядов - PullRequest
0 голосов
/ 04 мая

У меня есть несколько таких дат:

2015-02-02 14:19:00

У меня 20000 записей и 14 разных дней, я хотел бы разделить набор данных на 14 разных частей, чтобы иметь 14 разных временных рядов, один каждый день.

enter image description here

Я хотел бы создать для каждого дня переменная, которая содержит только записи за рассматриваемый день.

1 Ответ

1 голос
/ 04 мая

IIU C

# sample data
df = pd.DataFrame(pd.date_range('2020-01-01', '2020-01-14', freq='5T'), columns=['date'])
# list comprehension to spit groups into separate frames
dfs = [g for _,g in df.groupby(df['date'].dt.date)]

или вы можете использовать диктовку, если хотите, чтобы ключом была дата

dfs = {idx:df for idx,df in df.groupby(df['date'].dt.date)}
# below is how you call each frame by the date
dfs[datetime.date(2020, 1, 1)]

новый пример с несколькими столбцами

df = pd.DataFrame(np.transpose([pd.date_range('2020-01-01', '2020-01-14', freq='5T'),
                                np.random.randint(1,10,3745)]), columns=['date', 'col'])
dfs = [g for _,g in df.groupby(df['date'].dt.date)]
print(dfs[0])

                   date col
0   2020-01-01 00:00:00   3
1   2020-01-01 00:05:00   3
2   2020-01-01 00:10:00   6
3   2020-01-01 00:15:00   6
4   2020-01-01 00:20:00   3
...