Tried retName=True keyword argument to retrieve datatype name but it's not working. What is wrong with this code?
df_ind=ds.get_data (tickers='TOKYOSE', fields=["A18PE"], start="2018-01-31", freq="M", retName=True)
df_ind
Tried retName=True keyword argument to retrieve datatype name but it's not working. What is wrong with this code?
df_ind=ds.get_data (tickers='TOKYOSE', fields=["A18PE"], start="2018-01-31", freq="M", retName=True)
df_ind
I am using DatastreamDSWS-1.0.8. When setting retName to True, it will print the datatype name on the screen.
You can use another library, such as PyDatastream.
from pydatastream import Datastream DS = Datastream(username="username", password="password") res, meta = DS.fetch(['TOKYOSE'], fields=['A18PE'], date_from='2018-01-31',freq='M', return_metadata=True) meta['DataTypeNames']['A18PE']
Thank you very much for the comment. I was able to display datatype name.
Is there anyway to retrieve this datatype name when export it to Excel as csv.
I tried following but couldn't get the name in the csv.
You have two options:
1. Use PyDatastream and then rename the column name
res, meta = DS.fetch(['TOKYOSE'], fields=['A18PE'], date_from='2018-01-31',freq='M', return_metadata=True) res.rename(columns = {'A18PE':meta['DataTypeNames']['A18PE']}, inplace = True) res
2. If you still use DatastreamDSWS, the process is quite complex and prone to error. First, you need to redirect the output to a variable. Then, convert the output to JSON, retrieved the data type name, and rename the column name
import sys import io import json old_stdout = sys.stdout new_stdout = io.StringIO() sys.stdout = new_stdout df_ind=ds.get_data (tickers='TOKYOSE', fields=["A18PE"], start="2018-01-31", freq="M", retName=True) output = new_stdout.getvalue() sys.stdout = old_stdout metadata = json.loads(output.replace("'","\"")) df_ind.rename(columns = {'A18PE':metadata["A18PE"]}, inplace = True) df_ind