将日期中的日期替换为符合 pd.to_datetime 格式
Replace the day in a date in to fit the pd.to_datetime format
我有一个包含多列和多行的数据框。在这些列之一中,日期采用 mm/dd/yyyy
的形式。
我正在尝试使用 df['col'] = pd.to_datetime(df['col'])
转换它,但出现以下错误,因为有多个记录在缺少月份或日期的地方有 00
:
ValueError: day is out of range for month
我不想 df['col'] = pd.to_datetime(df['col'], errors = 'coerce')
因为我想保留那里的任何数据。
我希望所有缺少天数或月份或两者的日期(例如 11/00/2018, 00/13/2018, or 00/00/2018)
具有缺少值的值 01
(例如 11/01/2018, 01/13/2018, 01/01/2018
)。
您可以使用以下正则表达式替换 00
:
import pandas as pd
data = ['11/00/2018', '00/13/2018', '00/00/2018']
df = pd.DataFrame(data=data, columns=['col'])
replace = df['col'].replace('00/', '01/', regex=True)
result = pd.to_datetime(replace)
print(result)
输出
0 2018-11-01
1 2018-01-13
2 2018-01-01
Name: col, dtype: datetime64[ns]
我有一个包含多列和多行的数据框。在这些列之一中,日期采用 mm/dd/yyyy
的形式。
我正在尝试使用 df['col'] = pd.to_datetime(df['col'])
转换它,但出现以下错误,因为有多个记录在缺少月份或日期的地方有 00
:
ValueError: day is out of range for month
我不想 df['col'] = pd.to_datetime(df['col'], errors = 'coerce')
因为我想保留那里的任何数据。
我希望所有缺少天数或月份或两者的日期(例如 11/00/2018, 00/13/2018, or 00/00/2018)
具有缺少值的值 01
(例如 11/01/2018, 01/13/2018, 01/01/2018
)。
您可以使用以下正则表达式替换 00
:
import pandas as pd
data = ['11/00/2018', '00/13/2018', '00/00/2018']
df = pd.DataFrame(data=data, columns=['col'])
replace = df['col'].replace('00/', '01/', regex=True)
result = pd.to_datetime(replace)
print(result)
输出
0 2018-11-01
1 2018-01-13
2 2018-01-01
Name: col, dtype: datetime64[ns]