Изменить формат даты / отметки времени с типа данных объекта Excel на Pandas Dataframe (String) - PullRequest
0 голосов
/ 20 марта 2020

Итак, мне удалось извлечь указанную c ячейку из Excel, но теперь я получил это вместо:

2020-01-30T00: 00: 00.000000000

Я удалил символы после 'T', используя функцию разделения:

d1 = d.str.split("T",n=1, expand=True)[0]

, и результат: 2020-01-30

Мой вопрос Как я могу изменить формат даты на дд / мм / гггг.

Мне известно о функции strftime, поскольку я не смог получить результат из этого. Ошибки всегда показывают, что ряд не имеет атрибута series или date.datetime не является атрибутом строки.

Вот рабочий код:

    import pandas as pd 
    import datetime

    df = pd.read_csv('test1.xlsx',
    #header=None,
    #names = headers,
    dtype = dtypes,
    parse_dates = pdate, 
    date_parser=None) 


    d = df['AA']
    d1 = d.str.split("T",n=1, expand=True)[0]
    d2 = d1[0]

    print(d2)

              AA  Num
    0 2020-01-01    5
    1 2020-02-01   10
    2 2020-03-01   15
    3 2020-04-01   20
    4 2020-05-01   25

Ответы [ 2 ]

0 голосов
/ 20 марта 2020

Я использовал ваши примеры для создания фрейма данных, и вот ответ:

import pandas as pd
from datetime import datetime

Затем я создал фрейм данных.

data = {'date': ['2020-01-01T00:00:00.000000000','2020-02-01T00:00:00.000000000','2020-03-01T00:00:00.000000000','2020-04-01T00:00:00.000000000','2020-05-01T00:00:00.000000000'],
        'num':[5, 10, 15, 20, 25]
       }
df = pd.DataFrame(data, columns = ['date', 'num'])

Теперь часть ответа:

df['date'] = pd.to_datetime(df['date']).dt.strftime('%d/%m/%Y')

за четыре ди git года, которые нужно показать, вам нужно передать заглавную букву «Y». И вам нужно использовать dt.strftime для работы.

       date     num
0   01/01/2020  5
1   01/02/2020  10
2   01/03/2020  15
3   01/04/2020  20
4   01/05/2020  25

, если вы хотите изменить формат вашего столбца даты, вы можете использовать следующую строку кода:

df['date'].astype(str)

This преобразует весь столбец как объект.

0 голосов
/ 20 марта 2020

Первая идея - использовать to_datetime:

df['AA'] = pd.to_datetime(df['AA'])

Если необходимо удалить значения после T, ваше решение должно быть изменено на:

df['AA'] = pd.to_datetime(df['AA'].str.split("T").str[0])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...