Search code examples
pythonpandasdatetimetimestrftime

Pandas dataframe not including time of day when converting from UNIX


I am retrieving data from an API which is timestamped in UNIX millisecond time and am trying to save this data to a CSV file. The data is in daily intervals but represented in UNIX millisecond time as mentioned.

I am using pandas functions to convert from milliseconds to datetime but is still not saving the data with the time of day part. My code is as follows:

ticker = 'tBTCUSD'
r = requests.get(url, params = params)
data = pd.DataFrame(r.json())
data.set_index([0], inplace = True)
data.index = pd.to_datetime(data.index, unit = 'ms' )
data.to_csv('bitfinex_{}_usd_{}.csv'.format(ticker[1:-3].lower(), '1D'), mode='a', header=False)

It saves the data as 2020-08-21 instead of 2020-08-21 00:00:00. When I poll the API on say, an hourly or 15-minutely basis, that still includes the time but on daily intervals it doesn't. I was wondering if there is a step that I am missing to convert the time accordingly from UNIX millisecond to a %Y-%m-%d %H:%M:%S %Z format?


Solution

  • You can always explicitly specify the format:

    data.index = pd.to_datetime(data.index, unit='ms').strftime('%Y-%m-%d %H:%M:%S UTC')
    print(data)
    
                                        1             2            3             4             5
    0                                                                                           
    2020-09-10 00:00:00 UTC  10241.000000  10333.862868  10516.00000  10233.087967   3427.178984
    2020-09-09 00:00:00 UTC  10150.000000  10240.000000  10359.00000  10010.000000   2406.147398
    2020-09-08 00:00:00 UTC  10400.000000  10148.000000  10464.00000   9882.400000   6761.138356
    2020-09-07 00:00:00 UTC  10275.967600  10397.000000  10430.00000   9913.800000   6301.951492
    2020-09-06 00:00:00 UTC  10197.000000  10276.000000  10365.07422  10031.000000   2755.663001
    ...                               ...           ...          ...           ...           ...
    2020-05-18 00:00:00 UTC   9668.200000   9714.825163   9944.00000   9450.000000   9201.536549
    2020-05-17 00:00:00 UTC   9386.000000   9668.200000   9883.50000   9329.700000   9663.262087
    2020-05-16 00:00:00 UTC   9307.600000   9387.952090   9580.00000   9222.000000   4157.691762
    2020-05-15 00:00:00 UTC   9791.000000   9311.200000   9848.90000   9130.200000  11340.269781
    2020-05-14 00:00:00 UTC   9311.967387   9790.954158   9938.70000   9266.200000  12867.687617