Вы можете использовать to_datetime() со строкой формата для извлечения даты:
date = pd.to_datetime(df.Start_Time, format='%Y, %m, %d').dt.date
Вы также можете изменить дату на месте:
df[['Start_Time', 'End_Time']] = df[['Start_Time', 'End_Time']].apply(
lambda x: pd.to_datetime(x, format='%Y, %m, %d').dt.date)
Или, вы можете преобразовать в дату при чтении CSV:
to_date = lambda x: pd.to_datetime(x, format='%Y, %m, %d').date()
converters = dict(Start_Time=to_date, End_Time=to_date)
df = pd.read_csv(StringIO(data), converters=converters)
проверяемой пример:
import pandas as pd
from io import StringIO
data = u"""
Day_Part,Start_Time,End_Time
"Quarter 1","2014, 1, 1","2015, 3, 1"
"Quarter 2","2014, 3, 3","2014, 7, 3"
"""
df = pd.read_csv(StringIO(data))
# You can use `to_datetime()` with a format string to extract the date:
date = pd.to_datetime(df.Start_Time, format='%Y, %m, %d').dt.date
# The start month in the second row is 3
assert date[1].month == 3
# You can also modify in place
df[['Start_Time', 'End_Time']] = df[['Start_Time', 'End_Time']].apply(
lambda x: pd.to_datetime(x, format='%Y, %m, %d').dt.date)
# The end month in the second row is 7
assert df.End_Time[1].month == 7
# You can convert to date when reading the csv
to_date = lambda x: pd.to_datetime(x, format='%Y, %m, %d').date()
converters = dict(Start_Time=to_date, End_Time=to_date)
df = pd.read_csv(StringIO(data), converters=converters)
# The end month in the first row is 3
assert df.End_Time[0].month == 3
Гм, я абсолютно уверен, что тип данных не серия. Как вы оцениваете это? Почему бы вам не опубликовать вывод 'df.head()' и 'df.dtypes'. Я подозреваю, что ваши столбцы имеют типы объектов. –