Как работать со строковым столбцом, содержащим дату, только часы, минуты и секунды в Python - PullRequest
1 голос
/ 20 мая 2019

В пандах Python я использую pd.to_datetime(data.observation_time, format="%H:%M:%S") для преобразования строкового столбца, который имеет только часы: минуты: секунды, тогда результат всегда содержит год: месяц: день, угаданный компьютером, подобным этим enter image description here

поэтому мой вопрос здесь заключается в том, как преобразовать строковый столбец с использованием только часов: минут: секунд?Мне не нужны год, месяц и день для этого столбца

Ответы [ 3 ]

1 голос
/ 20 мая 2019

Вы можете использовать

df['time'] = df['dates'].dt.time

Это создаст новый столбец с извлечением только времени из столбца datetime

1 голос
/ 20 мая 2019

Вы так близко.Фактически, функция to_datetime используется для преобразования значения string в объект datetime.Таким образом, формат, который вы указываете в to_datetime, представляет собой текущий формат вашей строки , как python должен читать строку.Таким образом, Python знает, что дата на самом деле date, а не просто string. (doc)

После завершения этого преобразования вы можете переформатировать дату в свой собственный формат с помощью функции strftime (doc) .

Вот пример:

# Import module
import pandas as pd

# Build dataframe
df = pd.DataFrame({"Date": ["1900-01-01 01:01:00",
                            "1900-01-01 02:01:00",
                            "1900-01-01 03:31:00",
                            "1900-01-01 04:01:04",
                            "1900-01-01 11:01:00"]})
print(df)
#                   Date
# 0  1900-01-01 01:01:00
# 1  1900-01-01 02:01:00
# 2  1900-01-01 03:31:00
# 3  1900-01-01 04:01:04
# 4  1900-01-01 11:01:00

# Convert the date column (string type) to datetime type
df["Date"] = pd.to_datetime(df["Date"], format="%Y-%m-%d %H:%M:%S")
print(df)
#                    Date
# 0 1900-01-01 01:01:00
# 1 1900-01-01 02:01:00
# 2 1900-01-01 03:31:00
# 3 1900-01-01 04:01:04
# 4 1900-01-01 11:01:00

# Reformat the date column. Here Hours:minutes:seconds
df["Date"] = df.Date.dt.strftime("%H:%M:%S")
print(df)
#        Date
# 0  01:01:00
# 1  02:01:00
# 2  03:31:00
# 3  04:01:04
# 4  11:01:00
0 голосов
/ 20 мая 2019

использовать функцию даты и времени объектов pythons:

data['Time'] = [val.time() for val in data['observation_time']]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...