在pandas.read_csv中使用空值处理解析日期?

在pandas.read_csv中使用空值处理解析日期?,第1张

概述考虑以下组成的CSV: from io import StringIOdata = """value,date7,null7,10/18/2008621,(null)"""fake_file = StringIO(data) 我想使用pandas.read_csv读取此文件,使用na_values参数处理空值,使用parse_dates和date_parser处理日期: import 考虑以下组成的CSV:

from io import StringIOdata = """value,date7,null7,10/18/2008621,(null)"""fake_file = StringIO(data)

我想使用pandas.read_csv读取此文件,使用na_values参数处理空值,使用parse_dates和date_parser处理日期:

import pandas as pddate_parser = lambda c: pd.datetime.strptime(c,'%m/%d/%Y')df = pd.read_csv(fake_file,parse_dates=['date'],date_parser=date_parser,na_values=['null','(null)'])

在Python 3.5中运行此代码给了我:

file "<ipython-input-11-aa5bcf0858b7>",line 1,in <lambda>    date_parser = lambda c: pd.datetime.strptime(c,DATE_FMT)TypeError: strptime() argument 1 must be str,not float

所以似乎首先处理空值然后尝试解析日期…

我知道我可以这样做:

df = pd.read_csv(fake_file,'(null)'])df['date'] = pd.to_datetime(df['date'],format='%m/%d/%Y')

但我真正的问题是如何一举处理日期格式化和NaN处理……

解决方法 使用 to_datetime格式和错误=’coerce’:

date_parser = lambda c: pd.to_datetime(c,format='%m/%d/%Y',errors='coerce')df = pd.read_csv(fake_file,date_parser=date_parser)print (df)   value       date0      7        NaT1      7 2008-10-182    621        NaT
总结

以上是内存溢出为你收集整理的在pandas.read_csv中使用空值处理解析日期?全部内容,希望文章能够帮你解决在pandas.read_csv中使用空值处理解析日期?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1194333.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存