Использование pandas.DataFrame.values ​​при получении другого контекста? - PullRequest
0 голосов
/ 14 октября 2018

Я получил фрейм данных, например

               rectime
0  2018-10-13 00:15:00
1  2018-10-13 00:30:00
2  2018-10-13 00:45:00
3  2018-10-13 01:00:00

Формат 'rectime' datetime. Я хотел бы перевести его в список, используя

pandas.DataFrame.values

Чтоэто возвращает что-то вроде этого

[['2018-10-13T00:15:00.000000000']
 ['2018-10-13T00:30:00.000000000']
 ['2018-10-13T00:45:00.000000000']
 ['2018-10-13T01:00:00.000000000']]

Кто-то может сказать мне, почему есть разница?И как я могу получить список с тем же контекстом в 'rectime'?

1 Ответ

0 голосов
/ 14 октября 2018

Использовать dt.strftime():

df.rectime.dt.strftime("%Y-%m-%d %H:%M:%S").values

array(['2018-10-13 00:15:00', '2018-10-13 00:30:00', '2018-10-13 00:45:00',
       '2018-10-13 01:00:00'], dtype=object)

Объяснение: Pandas хранит объекты даты и времени внутри себя в формате ISO-8601 , но отображает строки даты вболее читаемый формат при взаимодействии с выводом на печать.
Когда вы преобразуете из Pandas в список с помощью .values, вы теряете функцию pretty-print и получаете полную строку 8601.
Вы можетеиспользуйте метод dt.strftime, чтобы точно определить, как вы хотите, чтобы строковое представление выглядело, затем переместите его в список, используя .values.

Данные:

df = pd.DataFrame({'rectime': {
    0: pd.Timestamp('2018-10-13 00:15:00'),
    1: pd.Timestamp('2018-10-13 00:30:00'),
    2: pd.Timestamp('2018-10-13 00:45:00'),
    3: pd.Timestamp('2018-10-13 01:00:00')}}) 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...