Я хочу изменить метку времени на дату и время в датафрейме - PullRequest
1 голос
/ 11 июня 2019

Я хочу изменить метку времени на дату и время в кадре данных.Но он показывает TypeError: строковые индексы должны быть целыми числами. Как я могу это решить?

Я использую Python версии 3.x

import pandas as pd
df = pd.DataFrame(contents)
df.columns = ['date', 'open', 'high', 'low', 'close', 'volume']
df['date'] = [datetime.datetime.strptime(x['date'], "%Y-%m-%dT%H:%M:%S") for x in df]
print(df)

Я ожидаю вывод 2019-05-14 08: 56: 07, но фактическим выводом является сообщение об ошибке «Ошибка типа: строковые индексы должны быть целыми числами»

Ответы [ 2 ]

0 голосов
/ 11 июня 2019

Я решил другим способом, используя dataframe.apply ()

def time_date(thetime):
    return datetime.datetime.fromtimestamp(thetime/1000).strftime('%Y-%m-%d %H:%M:%S')

df['date2'] = df['date'].apply(time_date)


              date       open  ...       volume                date2
1896  1559746800000  9441000.0  ...  3585.904319  2019-06-06 00:00:00
1897  1559833200000  9300000.0  ...  4411.323529  2019-06-07 00:00:00
1898  1559919600000  9639000.0  ...  2459.404861  2019-06-08 00:00:00
1899  1560006000000  9692000.0  ...  1855.680572  2019-06-09 00:00:00
1900  1560092400000  9577000.0  ...  4817.845051  2019-06-10 00:00:00

Спасибо

0 голосов
/ 11 июня 2019

Привет, вы можете попробовать:

from datetime import datetime

df['date']= [datetime.fromtimestamp(x['date']) for x in df['date']]

print(df['date'])

РЕДАКТИРОВАТЬ:

Это также может быть ваш for x in df, это не возвращает строку -> это возвращает имя столбца.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...