Python 如何在dataframe中进行条件日期格式化
我有一个CSV文件,其日期值如“20181029”。请注意,此列也可以有空白值。我想将此列转换为日期数据类型,如(2018-10-29),对于空白列,我想在dataframe中有空白值 使用参数parse_dates调用read_csv方法。此参数的值应为csv文件中包含日期的列的名称:Python 如何在dataframe中进行条件日期格式化,python,pandas,csv,Python,Pandas,Csv,我有一个CSV文件,其日期值如“20181029”。请注意,此列也可以有空白值。我想将此列转换为日期数据类型,如(2018-10-29),对于空白列,我想在dataframe中有空白值 使用参数parse_dates调用read_csv方法。此参数的值应为csv文件中包含日期的列的名称: df = pd.read_csv('myfile.csv', parse_dates=['some_col']) 您也可以在读取文件后对其进行转换: import datetime as dt df['dat
df = pd.read_csv('myfile.csv', parse_dates=['some_col'])
您也可以在读取文件后对其进行转换:
import datetime as dt
df['datetime'].apply(lambda x: dt.datetime.strptime(str(x), '%Y%m%d'))
编辑
正如@jezrael在评论中建议的,您也可以使用pd.to\u datetime
df['datetime'] =pd.to_datetime(df['datetime'], format = '%Y%m%d', errors='ignore')
使用dt.strftime(日期格式:str)
进行日期格式转换
比如说,
df['date\u column'].dt.strftime(“%Y-%m-%d”)
请尝试以下操作来处理空值
df['date_column'].map(lambda x: x.strftime('%Y-%m-%d') if x else "")
为什么不使用pd.to_datetime?很好的答案,在数据读入后,使用
parse_dates
和pd.to_datetime
应该优先选择读取csv。