在导入csv数据时,保留日期而不保留时间的方法是使用pandas的to_datetime功能。

11 浏览
0 Comments

在导入csv数据时,保留日期而不保留时间的方法是使用pandas的to_datetime功能。

你能帮我解决以下问题吗?当我导入一个csv文件时,我得到了一个类似于以下的数据框:\ndf = pd.DataFrame([\'29/12/17\', \'30/12/17\', \'31/12/17\', \'01/01/18\', \'02/01/18\'], columns=[\'Date\'])\n我想要的是将df的\'Date\'列转换成日期时间对象。所以我使用了以下代码:\ndf[\'date_f\'] = pd.to_datetime(df[\'Date\'])\n我得到的结果类似于:\ndf1 = pd.DataFrame({\'Date\': [\'29/12/17\', \'30/12/17\', \'31/12/17\', \'01/01/18\', \'02/01/18\'], \'date_f\':[\'2017-12-29T00:00:00.000Z\', \'2017-12-30T00:00:00.000Z\', \'2017-12-31T00:00:00.000Z\', \'2018-01-01T00:00:00.000Z\', \'2018-02-01T00:00:00.000Z\']})\n问题是,为什么我得到的date_f是这种格式(\'2017-12-29T00:00:00.000Z\'),而不是简单的(\'2017-12-29\'),我该如何得到后一种格式(\'2017-12-29\')?\n附注:\n如果你使用上述的代码,它会按照我需要的格式给出date_f。然而,如果数据是从csv导入的,它会提供上述指定的date_f格式。

0
0 Comments

问题的出现原因是在使用pandas从csv文件导入数据时,希望保留日期而不保留时间信息。解决方法是使用pandas中的to_datetime函数,并结合dt.date方法或设置utc参数为False来仅保留日期部分。

具体的解决方法有两种:

第一种方法是使用to_datetime函数和dt.date方法。代码如下:

df['date_f'] = pd.to_datetime(df['Date']).dt.date

第二种方法是使用to_datetime函数,并将utc参数设置为False。代码如下:

df['date_f'] = pd.to_datetime(df['Date'], utc=False)

两种方法得到的结果是相同的,即将日期部分提取出来,并保留为datetime对象,如下所示:

       Date     date_f
0  29/12/17 2017-12-29
1  30/12/17 2017-12-30
2  31/12/17 2017-12-31
3  01/01/18 2018-01-01
4  02/01/18 2018-02-01

通过使用上述方法,可以在导入csv数据时仅保留日期信息,而不保留时间信息。

0