pandas.DataFrame.to_csv:按列有选择地应用date_format

时间:2019-08-28 08:51:37

标签: python pandas dataframe datetime datetime-format

我有一个包含多列的数据框

df = pd.DataFrame({'date': ['2011-01-01 10:15:20', '2016-11-17 08:22:10'],
'text': ['red', 'purple'],
'datetime': ['2011-01-01 10:15:20', '2016-11-17 08:22:10']})

我想使用熊猫的df将此csv导出到.to_csv(...)文件,并以date格式保存列%Y-%m-%d,但列{ {1}}的格式为datetime,无法找到一种方法来相应地修改代码。

我尝试过

  1. %Y-%m-%d %H:%M:%S,它转换了所有列的日期格式,包括我想保留时间的df.to_csv('output.csv', date_format = '%Y-%m-%d')列。
  2. datetime(不使用df.to_csv('output.csv'))将所有列的日期格式显示为日期时间-但我希望列{{1} },不包含时间成分。

有人知道怎么做吗? 在此先感谢一吨。

1 个答案:

答案 0 :(得分:1)

我认为不可能有选择性,docs

  

date_format :日期时间对象的格式字符串

解决方案是将列转换为to_csv之前的日期:

df['date'] = df['date'].dt.date
print (df.to_csv())

或者:

print (df.assign(date=df['date'].dt.date).to_csv())

,date,text,datetime
0,2011-01-01,red,2011-01-01 10:15:20
1,2016-11-17,purple,2016-11-17 08:22:10