I am struggling to display all the decimals coming from a json feed when I use pandas to convert the data. The code is the following.
import pandas as pd
url = 'https://api.binance.com/api/v1/klines?interval=1m&symbol=VETBTC'
df = pd.read_json(url, orient='columns', precise_float=True)
df.columns = ["Open_time","Open","High","Low","Close","Volume","Close_time","Quote_AV","TradesNo","Taker_base","Taker_quote","Ignore"]
df['Open_time'] = pd.to_datetime(df['Open_time'],unit='ms')
df['Close_time'] = pd.to_datetime(df['Close_time'],unit='ms')
print df.head(10000)
The output is:
Open_time Open High Low Close Volume Close_time Quote_AV TradesNo Taker_base Taker_quote Ignore
0 2018-11-21 02:53:00 0.000001 0.000001 0.000001 0.000001 64166 2018-11-21 02:53:59.999 0.077268 6 44229 0.053344 0
1 2018-11-21 02:54:00 0.000001 0.000001 0.000001 0.000001 5030 2018-11-21 02:54:59.999 0.005996 2 1010 0.001212 0
2 2018-11-21 02:55:00 0.000001 0.000001 0.000001 0.000001 61463 2018-11-21 02:55:59.999 0.073756 2 61463 0.073756 0
3 2018-11-21 02:56:00 0.000001 0.000001 0.000001 0.000001 106492 2018-11-21 02:56:59.999 0.127790 2 106492 0.127790 0
4 2018-11-21 02:57:00 0.000001 0.000001 0.000001 0.000001 13215 2018-11-21 02:57:59.999 0.015858 1 13215 0.015858 0
5 2018-11-21 02:58:00 0.000001 0.000001 0.000001 0.000001 25991 2018-11-21 02:58:59.999 0.031181 2 25142 0.030170 0
6 2018-11-21 02:59:00 0.000001 0.000001 0.000001 0.000001 2024424 2018-11-21 02:59:59.999 2.429309 14 1157504 1.389005 0
7 2018-11-21 03:00:00 0.000001 0.000001 0.000001 0.000001 6500 2018-11-21 03:00:59.999 0.007865 1 6500 0.007865 0
8 2018-11-21 03:01:00 0.000001 0.000001 0.000001 0.000001 24128 2018-11-21 03:01:59.999 0.028954 2 0 0.000000 0
9 2018-11-21 03:02:00 0.000001 0.000001 0.000001 0.000001 1126289 2018-11-21 03:02:59.999 1.351547 2 0 0.000000 0
10 2018-11-21 03:03:00 0.000001 0.000001 0.000001 0.000001 91099 2018-11-21 03:03:59.999 0.109695 6 37571 0.045461 0
11 2018-11-21 03:04:00 0.000001 0.000001 0.000001 0.000001 71152 2018-11-21 03:04:59.999 0.086094 1 71152 0.086094 0
12 2018-11-21 03:05:00 0.000001 0.000001 0.000001 0.000001 12222 2018-11-21 03:05:59.999 0.014789 2 12222 0.014789 0
While the json feed has values with more decimals just like:
0 1542768840000 1 "0.00000119" 2 "0.00000120" 3 "0.00000119" 4 "0.00000120" 5 "5030.00000000" 6 1542768899999 7 "0.00599580" 8 2 9 "1010.00000000" 10 "0.00121200" 11 "0"
I tried using the precise_float option but it doesn't seem to do what it is supposed to. Any help would be highly appreciated.
import pandas as pd
import ssl
ssl._create_default_https_context = ssl._create_unverified_context
url = 'https://api.binance.com/api/v1/klines?interval=1m&symbol=VETBTC'
df = pd.read_json(url, orient='columns', precise_float=True)
df.columns = ["Open_time","Open","High","Low","Close","Volume","Close_time","Quote_AV","TradesNo","Taker_base","Taker_quote","Ignore"]
df['Open_time'] = pd.to_datetime(df['Open_time'],unit='ms')
df['Close_time'] = pd.to_datetime(df['Close_time'],unit='ms')
print(df.head())
OutPut:
Open_time Open High Low Close Volume \
0 2018-11-21 03:17:00 0.000001 0.000001 0.000001 0.000001 960188
1 2018-11-21 03:18:00 0.000001 0.000001 0.000001 0.000001 89803
2 2018-11-21 03:19:00 0.000001 0.000001 0.000001 0.000001 0
3 2018-11-21 03:20:00 0.000001 0.000001 0.000001 0.000001 0
4 2018-11-21 03:21:00 0.000001 0.000001 0.000001 0.000001 438661
Close_time Quote_AV TradesNo Taker_base Taker_quote Ignore
0 2018-11-21 03:17:59.999 1.152354 5 12795 0.015482 0
1 2018-11-21 03:18:59.999 0.108186 6 42283 0.051162 0
2 2018-11-21 03:19:59.999 0.000000 0 0 0.000000 0
3 2018-11-21 03:20:59.999 0.000000 0 0 0.000000 0
4 2018-11-21 03:21:59.999 0.526410 8 1714 0.002074 0
Setting precision:
pd.set_option('precision', 15)
print(df.head())
Output:
Open_time Open High Low Close Volume \
0 2018-11-21 03:13:00 0.00000121 0.00000121 0.00000121 0.00000121 7231
1 2018-11-21 03:14:00 0.00000121 0.00000121 0.00000121 0.00000121 22162
2 2018-11-21 03:15:00 0.00000120 0.00000120 0.00000120 0.00000120 1000
3 2018-11-21 03:16:00 0.00000121 0.00000121 0.00000120 0.00000120 83247
4 2018-11-21 03:17:00 0.00000120 0.00000121 0.00000120 0.00000121 960188
Close_time Quote_AV TradesNo Taker_base Taker_quote \
0 2018-11-21 03:13:59.999 0.00874951 1 7231 0.00874951
1 2018-11-21 03:14:59.999 0.02681602 3 22162 0.02681602
2 2018-11-21 03:15:59.999 0.00120000 1 0 0.00000000
3 2018-11-21 03:16:59.999 0.10062838 7 73198 0.08856958
4 2018-11-21 03:17:59.999 1.15235355 5 12795 0.01548195
Ignore
0 0
1 0
2 0
3 0
4 0