Я хочу построить непрерывную таблицу дат для каждого клиента.
допустим, у меня есть этот фрейм данных
con = pyodbc.connect (....)
Причина, по которой я взял dateadd (день, -1, getdate ()), потому что в таблице нет данных для getdate () только за вчерашний день.
SQL_Until_Today = pd.read_sql_query("Select date, customer,value from account where date < convert(date,dateadd(day,-1,getdate()))", con)
account = pd.dataframe(SQL_Until_Today , columns = ['date','customer','value'])
SQL_Today = pd.read_sql_query("Select date, customer,value from account where date = convert(date,dateadd(day,-1,getdate()))",con)
account_Today = pd.dataframe(SQL_Today,columns =
['date', 'customer','value'])
account = account.append(account_Today)
Итак, из этих двух я получаю фрейм данных с именем account, который выглядит примерно так:
date customer value
2019-06-27 100 40
2019-06-28 100 30
2019-06-30 100 20
2019-07-01 100 10
2019-07-02 100 18
2019-06-21 200 460
2019-06-23 200 430
2019-06-24 200 410
2019-06-25 200 130
2019-06-26 200 210
2019-06-27 200 410
2019-06-28 200 310
2019-06-30 200 210
2019-07-01 200 110
2019-07-02 200 118
Мне нужно создать непрерывную таблицу дат для каждого клиента, начиная с min_date, которое он имеет в таблице.
Например:
customer = 100 --> 2019-06-27
customer = 200 --> 2019-06-21
поэтому мой желаемый вывод для фрейма данных аккаунта будет:
date customer value
2019-06-27 100 40
2019-06-28 100 30
2019-06-29 100 30 *************** The most closer value before!
2019-06-30 100 20
2019-07-01 100 10
2019-07-02 100 18
2019-07-03 100 18 **************** The most closer value before!
2019-06-21 200 460
2019-06-22 200 460 *************** The most closer value before!
2019-06-23 200 430
2019-06-24 200 410
2019-06-25 200 130
2019-06-26 200 210
2019-06-27 200 410
2019-06-28 200 310
2019-06-29 200 310 *************** The most closer value before!
2019-06-30 200 210
2019-07-01 200 110
2019-07-02 200 118
2019-07-03 200 118 *************** The most closer value before!
Если будет разрыв между двумя датами, все же я захочу взять значение из наиболее близкой даты.
Любая помощь, как я могу выполнить это эффективно?