如何将 csv 文件读取为 dtype datetime64?

Posted

技术标签:

【中文标题】如何将 csv 文件读取为 dtype datetime64?【英文标题】:How to read csv file as dtype datetime64? 【发布时间】:2017-02-22 03:54:40 【问题描述】:

现在我有了 csv 文件

 date
201605
201606
201607
201608

我想得到这样的数据框

df

      date
0  2016-05-01
1  2016-06-01
2  2016-07-01
3  2016-08-01

所以,我想将 csvfile 读取为 datetime64。 并添加日期 1。 如何读取和转换此 csvfile?

【问题讨论】:

【参考方案1】:

你可以在read_csv中使用参数date_parser

import sys
if sys.version_info.major<3:
    from StringIO import StringIO
else:
    from io import StringIO
import pandas as pd

temp=u"""date
201605
201606
201607
201608"""

dateparser = lambda x: pd.datetime.strptime(x, '%Y%m')

#after testing replace io.StringIO(temp) to filename
df = pd.read_csv(StringIO(temp), parse_dates=[0], date_parser=dateparser)

print (df)
        date
0 2016-05-01
1 2016-06-01
2 2016-07-01
3 2016-08-01
print (df.dtypes)
date    datetime64[ns]
dtype: object

【讨论】:

@Guillaume Jacquenot - 谢谢。【参考方案2】:

也许这个答案会帮助您将列转换为日期时间对象https://***.com/a/26763793/5982925

【讨论】:

以上是关于如何将 csv 文件读取为 dtype datetime64?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 pandas 将一列 csv 读取为 dtype 列表?

如何转换numpy子数组的dtype?

将包含 NaN 的 Pandas 列转换为 dtype `int`

Pandas read_csv dtype 读取所有列,但很少作为字符串读取

Python:读取 CSV 文件时替换值

为 pandas.read_csv 指定正确的 dtypes 以获取日期时间和布尔值