gpt4 book ai didi

python - pandas 可以自动从 CSV 文件中读取日期吗?

转载 作者:IT老高 更新时间:2023-10-28 21:05:59 24 4
gpt4 key购买 nike

今天,我非常惊讶的是,在从数据文件(例如)读取数据时,pandas 能够识别值的类型:

df = pandas.read_csv('test.dat', delimiter=r"\s+", names=['col1','col2','col3'])

例如可以这样检查:

for i, r in df.iterrows():
print type(r['col1']), type(r['col2']), type(r['col3'])

尤其是整数、 float 和字符串被正确识别。但是,我有一列具有以下格式的日期:2013-6-4。这些日期被识别为字符串(而不是 python 日期对象)。有没有办法让 Pandas “学习”识别日期?

最佳答案

您应该在阅读时添加 parse_dates=Trueparse_dates=['column name'],这通常足以神奇地解析它。但是总是有一些奇怪的格式需要手动定义。在这种情况下,您还可以添加日期解析器函数,这是最灵活的方法。

假设您的字符串中有一个“日期时间”列,那么:

from datetime import datetime
dateparse = lambda x: datetime.strptime(x, '%Y-%m-%d %H:%M:%S')

df = pd.read_csv(infile, parse_dates=['datetime'], date_parser=dateparse)

这样您甚至可以将多个列合并为一个日期时间列,这会将一个“日期”和一个“时间”列合并为一个“日期时间”列:

dateparse = lambda x: datetime.strptime(x, '%Y-%m-%d %H:%M:%S')

df = pd.read_csv(infile, parse_dates={'datetime': ['date', 'time']}, date_parser=dateparse)

您可以找到 strptimestrftime 的指令(即用于不同格式的字母)in this page .

关于python - pandas 可以自动从 CSV 文件中读取日期吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17465045/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com