From cb30d436d5603d3966c588b8e3a99deda6dfad81 Mon Sep 17 00:00:00 2001 From: Steven Date: Mon, 3 Apr 2017 17:05:47 -0400 Subject: [PATCH 1/2] when calling currency above 1000, oanda return a string. ( USD/KRW as example ) coverting those object dtype to float64 type. --- pandas_datareader/oanda.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pandas_datareader/oanda.py b/pandas_datareader/oanda.py index 6f607349..03e52b7e 100644 --- a/pandas_datareader/oanda.py +++ b/pandas_datareader/oanda.py @@ -45,6 +45,8 @@ def get_oanda_currency_historical_rates(start, end, quote_currency="USD", base_c }) df = df.set_index("Date") df = df[::-1] + df.replace(regex=True, inplace=True, to_replace=r',', value=r'') + df = df.astype('float64') if reversed: df.columns = pd.Index(df.columns.map(reverse_pair)) df = 1 / df From 921f47276d1486e32b9412d61f5d4b2b313e497e Mon Sep 17 00:00:00 2001 From: Steven Date: Tue, 4 Apr 2017 08:48:55 -0400 Subject: [PATCH 2/2] added thousands field in the read_csv --- pandas_datareader/oanda.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pandas_datareader/oanda.py b/pandas_datareader/oanda.py index 03e52b7e..2a662833 100644 --- a/pandas_datareader/oanda.py +++ b/pandas_datareader/oanda.py @@ -39,14 +39,14 @@ def get_oanda_currency_historical_rates(start, end, quote_currency="USD", base_c skiprows = 4 skipfooter = 4 usecols = range(len(base_currency) + 1) - df = pd.read_csv(StringIO(response.text), parse_dates=[0], skiprows=skiprows, skipfooter=skipfooter, usecols=usecols, engine='python') + df = pd.read_csv(StringIO(response.text), parse_dates=[0], skiprows=skiprows, skipfooter=skipfooter, + usecols=usecols, engine='python', thousands=',') df = df.rename(columns={ "End Date": "Date", }) df = df.set_index("Date") df = df[::-1] - df.replace(regex=True, inplace=True, to_replace=r',', value=r'') - df = df.astype('float64') + if reversed: df.columns = pd.Index(df.columns.map(reverse_pair)) df = 1 / df