Как лучше всего узнать частоту получения данных? ⇐ Python
-
Гость
Как лучше всего узнать частоту получения данных?
Я пытаюсь определить отчетный период по набору данных отчетов. Варианты отчетного периода:
[*]Ежемесячно [*]Ежеквартально [*]Другое
Фрейм данных выглядит следующим образом:
data = [['F000003Y6H', '2018-07-31'], ['F000003Y6H', '2018-08-31'], ['F000003Y6H', '2018-09-30'], ['F000003Y6H', '2018-10-31'], ['FOUSA06C1Y', '31 июля 2021'], ['FOUSA06C1Y', '31 октября 2021'], ['FOUSA06C1Y', '31 января 2022'], ['FOUSA06C1Y', '30 апреля 2022 г.'], ['FOUSA06C1Y', '2022-7-31'], ['FO0005TYH7', '2019-5-31'], ['FO0005TYH7', '2019-6-30'], ['FO0005TYH7', '2019-7-31'], ['FO0005TYH7', '2019-31-10'], ['FO0005TYH7', '2020-1-31']] df = pd.DataFrame(data, columns=['class_id', 'report_date']) Чтобы определить частоту отчетов (для каждого class_id), у меня есть следующее:
df['report_date'] = pd.to_datetime(df['report_date']) df['datediff_days'] = df.groupby(['class_id'])['report_date'].diff() class_ids = df['class_id'].unique() защита define_ period (class_id): new_df = df.groupby('class_id')['datediff_days'].describe() mean_td = new_df.at[class_id, 'среднее'] средние_дни = среднее_время.дней если 28
Я пытаюсь определить отчетный период по набору данных отчетов. Варианты отчетного периода:
[*]Ежемесячно [*]Ежеквартально [*]Другое
Фрейм данных выглядит следующим образом:
data = [['F000003Y6H', '2018-07-31'], ['F000003Y6H', '2018-08-31'], ['F000003Y6H', '2018-09-30'], ['F000003Y6H', '2018-10-31'], ['FOUSA06C1Y', '31 июля 2021'], ['FOUSA06C1Y', '31 октября 2021'], ['FOUSA06C1Y', '31 января 2022'], ['FOUSA06C1Y', '30 апреля 2022 г.'], ['FOUSA06C1Y', '2022-7-31'], ['FO0005TYH7', '2019-5-31'], ['FO0005TYH7', '2019-6-30'], ['FO0005TYH7', '2019-7-31'], ['FO0005TYH7', '2019-31-10'], ['FO0005TYH7', '2020-1-31']] df = pd.DataFrame(data, columns=['class_id', 'report_date']) Чтобы определить частоту отчетов (для каждого class_id), у меня есть следующее:
df['report_date'] = pd.to_datetime(df['report_date']) df['datediff_days'] = df.groupby(['class_id'])['report_date'].diff() class_ids = df['class_id'].unique() защита define_ period (class_id): new_df = df.groupby('class_id')['datediff_days'].describe() mean_td = new_df.at[class_id, 'среднее'] средние_дни = среднее_время.дней если 28
Мобильная версия