-
Notifications
You must be signed in to change notification settings - Fork 0
/
fill_mising_date.py
46 lines (38 loc) · 1.19 KB
/
fill_mising_date.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
import pandas as pd
import datetime
# df = pd.read_csv('GOLD_raw.csv')
df = pd.read_csv('BTC_raw.csv')
df.Date = pd.to_datetime(df.Date)
while True:
L_Date = list(df['Date'])
L_Open = list(df['Open'])
L_High = list(df['High'])
L_Low = list(df['Low'])
L_Close = list(df['Close'])
L_Volume = list(df['Volume'])
is_break = False
for i_row in range(1,df.shape[0]):
delta_day = (df.iloc[i_row,:].Date-df.iloc[i_row-1,:].Date).days
if delta_day>1:
print('i_row',i_row,'delta_day',delta_day)
new_date = L_Date[i_row-1]+datetime.timedelta(days = 1)
L_Date.insert(i_row,new_date)
L_Open.insert(i_row,L_Open[i_row-1])
L_High.insert(i_row,L_High[i_row-1])
L_Low.insert(i_row,L_Low[i_row-1])
L_Close.insert(i_row,L_Close[i_row-1])
L_Volume.insert(i_row,L_Volume[i_row-1])
is_break = True
break
df = pd.DataFrame.from_dict({
'Date':L_Date,
'Open':L_Open,
'High':L_High,
'Low':L_Low,
'Close':L_Close,
'Volume':L_Volume
})
if not is_break:
break
# df.to_csv('GOLD.csv')
df.to_csv('BTC.csv')