BitcoinAnalysis - Ipynb - Colaboratory
BitcoinAnalysis - Ipynb - Colaboratory
ipynb - Colaboratory
https://colab.research.google.com/drive/1YzxhLK6bzcIR-j5btF8wVutr8BZsToAR#scrollTo=th-qpph1JIDH&printMode=true 1/12
1/13/24, 10:19 PM BitcoinAnalysis.ipynb - Colaboratory
import pandas as pd
# File paths .
file_2017 = '/content/drive/MyDrive/BTC-2017min.csv'
file_2018 = '/content/drive/MyDrive/BTC-2018min.csv'
file_2019 = '/content/drive/MyDrive/BTC-2019min.csv'
unix int64
date object
symbol object
open float64
high float64
low float64
close float64
Volume BTC float64
Volume USD float64
dtype: object
https://colab.research.google.com/drive/1YzxhLK6bzcIR-j5btF8wVutr8BZsToAR#scrollTo=th-qpph1JIDH&printMode=true 2/12
1/13/24, 10:19 PM BitcoinAnalysis.ipynb - Colaboratory
# Convert 'unix' to datetime
merged_data['unix'] = pd.to_datetime(merged_data['unix'], unit='s') # Assuming 'unix' is in seconds
# Convert 'date' to datetime
merged_data['date'] = pd.to_datetime(merged_data['date'])
unix datetime64[ns]
date datetime64[ns]
symbol string
open float64
high float64
low float64
close float64
Volume BTC float64
Volume USD float64
dtype: object
https://colab.research.google.com/drive/1YzxhLK6bzcIR-j5btF8wVutr8BZsToAR#scrollTo=th-qpph1JIDH&printMode=true 3/12
1/13/24, 10:19 PM BitcoinAnalysis.ipynb - Colaboratory
Volume
date symbol open high low close Volume USD
BTC
2017-12-31
0 BTC/USD 13913.28 13913.28 13867.18 13880.00 0.591748 8213.456549
23:59:00
2017-12-31
1 BTC/USD 13913.26 13953.83 13884.69 13953.77 1.398784 19518.309658
23:58:00
2017-12-31
2 BTC/USD 13908.73 13913.26 13874.99 13913.26 0.775012 10782.944294
23:57:00
BTC/USD 1576797
Name: symbol, dtype: Int64
https://colab.research.google.com/drive/1YzxhLK6bzcIR-j5btF8wVutr8BZsToAR#scrollTo=th-qpph1JIDH&printMode=true 4/12
1/13/24, 10:19 PM BitcoinAnalysis.ipynb - Colaboratory
Sample of Data:
merged_data.sample(5)
Volume
date symbol open high low close Volume USD
BTC
2018-08-26
183380 BTC/USD 6693.25 6693.40 6691.06 6691.06 1.736926 11621.875212
15:39:00
2019-09-27
137022 BTC/USD 8008.00 8008.00 8008.00 8008.00 0.013155 105.347082
20:17:00
2017-02-20
452575 BTC/USD 1060.95 1060.95 1059.92 1059.92 0.028804 30.529830
17:04:00
merged_data.isnull().sum()
date 0
symbol 0
open 0
high 0
low 0
close 0
Volume BTC 0
Volume USD 0
dtype: int64
merged_data['date'].head(5)
0 2017-12-31 23:59:00
1 2017-12-31 23:58:00
2 2017-12-31 23:57:00
3 2017-12-31 23:56:00
4 2017-12-31 23:55:00
Name: date, dtype: datetime64[ns]
merged_data['date'].nunique()
1576797
https://colab.research.google.com/drive/1YzxhLK6bzcIR-j5btF8wVutr8BZsToAR#scrollTo=th-qpph1JIDH&printMode=true 5/12
1/13/24, 10:19 PM BitcoinAnalysis.ipynb - Colaboratory
daily_data.reset_index(inplace=True)
daily_data.head(5)
https://colab.research.google.com/drive/1YzxhLK6bzcIR-j5btF8wVutr8BZsToAR#scrollTo=th-qpph1JIDH&printMode=true 7/12
1/13/24, 10:19 PM BitcoinAnalysis.ipynb - Colaboratory
import pandas as pd
# Now your daily_data DataFrame has an additional column with the 20-day moving average of the close price
daily_data.reset_index('date', inplace=True)
#replace first 19 rows of null because of the 20 window.
#used this approach , using close price as defauly price.
daily_data['moving_average_close'].fillna(daily_data['close'], inplace=True)
print(daily_data.head(25)) # Displaying the first 25 rows to see some of the moving averages
https://colab.research.google.com/drive/1YzxhLK6bzcIR-j5btF8wVutr8BZsToAR#scrollTo=th-qpph1JIDH&printMode=true 8/12
1/13/24, 10:19 PM BitcoinAnalysis.ipynb - Colaboratory
8 8716.182941 7.782149e+06 893.471535
9 8535.521688 7.706384e+06 902.638375
10 35893.768368 2.945219e+07 846.173313
11 17400.141555 1.363246e+07 782.961688
12 11409.520330 9.224971e+06 807.177507
13 6614.718992 5.469742e+06 827.412431
14 4231.463903 3.454909e+06 817.081007
15 6166.043977 5.107435e+06 827.977958
16 12264.169385 1.077497e+07 876.181472
17 11181.898878 9.830026e+06 885.345653
18 11094.603298 9.928565e+06 893.294389
19 6618.627764 5.915721e+06 905.154059
20 5865.632031 5.373761e+06 902.174225
21 7166.665479 6.566289e+06 897.694986
22 3514.741429 3.234650e+06 892.702387
23 9405.046565 8.497003e+06 884.234022
24 5291.554742 4.725942e+06 876.782092
daily_data['date'].head()
0 2017-01-01
1 2017-01-02
2 2017-01-03
3 2017-01-04
4 2017-01-05
Name: date, dtype: object
daily_data.head()
date open high low close Volume BTC Volume USD moving_ave
2017-
0 977.256602 977.385233 977.132620 977.276060 6850.593309 6.765936e+06
01-01
2017-
1 1012.267604 1012.517181 1011.988826 1012.273903 8167.381030 8.276031e+06 1
01-02
2017-
2 1020.001535 1020.226840 1019.794437 1020.040472 9089.658025 9.276735e+06 1
01-03
2017-
3 1076.558840 1077.271167 1075.572542 1076.553639 21562.456972 2.347651e+07 1
01-04
2017-
4 1043.608646 1044.905549 1042.094125 1043.547951 36018.861120 3.619081e+07 1
01-05
# Scale the training data and also apply the same transformation to the test data
X_train_scaled = scaler.fit_transform(X_train)
X_test_scaled = scaler.transform(X_test)
https://colab.research.google.com/drive/1YzxhLK6bzcIR-j5btF8wVutr8BZsToAR#scrollTo=th-qpph1JIDH&printMode=true 11/12
1/13/24, 10:19 PM BitcoinAnalysis.ipynb - Colaboratory
https://colab.research.google.com/drive/1YzxhLK6bzcIR-j5btF8wVutr8BZsToAR#scrollTo=th-qpph1JIDH&printMode=true 12/12