Добавление дополнительных дней для каждого месяца в пандах - PullRequest
0 голосов
/ 07 июня 2019

В pandas df у меня есть количество дней для данного месяца в первом столбце и количество в секундах.Как я могу добавить дни, которых нет в этом месяце, в первом столбце и дать ему значение 0 во втором столбце

  df = pd.DataFrame({
'Date':['5/23/2019', '5/9/2019'],
'Amount':np.random.choice([10000])
})

Я бы хотел, чтобы результат выглядел следующим образом:

Ожидаемый результат

       Date  Amount
 0  5/01/2019   0
 1  5/02/2019   0
 .
 .
 .  5/23/2019  1000
 .  5/24/2019   0

1 Ответ

1 голос
/ 07 июня 2019

Посмотрите на date_range от панд.

Я предполагаю, что 31.05.2009 не в вашем выводе, как в комментарии, потому что вы хотите, чтобы различия между мини максимальные даты?

Я конвертирую столбец date в тип datetime.Я передаю минимальную и максимальную дату в date_range и сохраняю это в кадре данных.тогда я присоединяюсь.

df['Date'] = pd.to_datetime(df['Date'])
date_range = pd.DataFrame(pd.date_range(start=df['Date'].min(), end=df['Date'].max()), columns=['Date'])
final_df = pd.merge(date_range, df, how='left')

         Date   Amount
0  2019-05-09  10000.0
1  2019-05-10      NaN
2  2019-05-11      NaN
3  2019-05-12      NaN
4  2019-05-13      NaN
5  2019-05-14      NaN
6  2019-05-15      NaN
7  2019-05-16      NaN
8  2019-05-17      NaN
9  2019-05-18      NaN
10 2019-05-19      NaN
11 2019-05-20      NaN
12 2019-05-21      NaN
13 2019-05-22      NaN
14 2019-05-23  10000.0
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...