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