如何在数据框中进行条件日期格式化

时间:2018-10-16 11:20:42

标签: python pandas csv

我有一个CSV文件,其日期值类似于“ 20181029”。请注意,此列也可以具有空白值。我想将此列转换为日期-数据类型为(2018-10-29),对于空白列,我想在dataframe中具有空白值。

3 个答案:

答案 0 :(得分:3)

使用参数parse_dates调用read_csv方法。此参数的值应该是csv文件中包含日期的列的名称:

df = pd.read_csv('myfile.csv', parse_dates=['some_col'])

答案 1 :(得分:0)

您也可以在读取文件后将其转换:

import datetime as dt
df['datetime'].apply(lambda x: dt.datetime.strptime(str(x), '%Y%m%d'))

修改

正如@jezrael在评论中建议的那样,您也可以使用pd.to_datetime

df['datetime'] =pd.to_datetime(df['datetime'], format = '%Y%m%d', errors='ignore')

答案 2 :(得分:0)

使用dt.strftime(date_format:str)进行date_format转换。

例如

df['date_column'].dt.strftime('%Y-%m-%d')

请尝试以下操作以处理空值

df['date_column'].map(lambda x: x.strftime('%Y-%m-%d') if x else "")