用熊猫read_csv读取缺失日期的最安全方法-给定空白会出现今天的日期错误

切特·梅恩泽

py2.7 pandas版本.13

读取csv并将列转换为日期的最安全方法是什么。我注意到,在我的情况下,日期列中的空白转换为今天的日期。为什么?

这是我的CSV数据

fake_file = StringIO.StringIO("""case,opdate,
7,10/18/2006,
7,10/18/2008,
621, ,""")

这是我的代码

df=pd.DataFrame(pd.read_csv('path.csv',parse_dates=['opdate']))

悲惨地用今天的日期填充空白!

df=pd.DataFrame(pd.read_csv('path.csv',parse_dates=['opdate'],na_values=' '))

可以,但是我真的必须知道它始终是'',而不是说'或'null'。

转换日期并保留null的最安全方法是什么(尤其是在null不是一致的值时)?

安迪·海登(Andy Hayden)

一种方法是将一个不同的日期解析器传递给read_csv(我也输入了null):

fake_file = StringIO.StringIO("""case,opdate,
7,null,
7,10/18/2008,
621, ,""")

In [11]: parser = lambda x: pd.to_datetime(x, format='%m/%d/%Y', coerce=True)

In [12]: pd.read_csv(fake_file, parse_dates=['opdate'], date_parser=parser)
Out[12]:
   case     opdate  Unnamed: 2
0     7        NaT         NaN
1     7 2008-10-18         NaN
2   621        NaT         NaN

[3 rows x 3 columns]

另一种选择是使用to_datetime将事实转换为日期

In [21]: df = pd.read_csv(fake_file)

In [22]: pd.to_datetime(df.opdate, format='%m/%d/%Y')
ValueError: time data 'null' does not match format '%m/%d/%Y'

In [23]: pd.to_datetime(df.opdate, format='%m/%d/%Y', coerce=True)
Out[23]:
0          NaT
1   2008-10-18
2          NaT
Name: opdate, dtype: datetime64[ns]

In [24]: df['opdate'] = pd.to_datetime(df.opdate, format='%m/%d/%Y', coerce=True)

我认为,事实上,这两个to_datetimeread_csv转换空白/空格今天的日期是绝对错误......

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

熊猫read_csv解析日期

来自分类Dev

如何发现今天的日期是否在其他两个日期之间?

来自分类Dev

如何发现今天的日期是否在其他2个日期之间?

来自分类Dev

在熊猫read_csv中以毫秒为单位解析日期

来自分类Dev

如何在熊猫中使用read_csv将时区感知日期时间读取为时区天真本地DatetimeIndex?

来自分类Dev

在方法上计算给定数会出现此错误

来自分类Dev

对今天的日期使用 grep 时出现 EOF 错误

来自分类Dev

如何使熊猫read_csv从其自己的csv生成的文件中正确解析日期?

来自分类Dev

Windows上的熊猫read_csv错误

来自分类Dev

熊猫read_csv导入结果错误

来自分类Dev

熊猫中的编码错误read_csv

来自分类Dev

熊猫read_csv导入结果错误

来自分类Dev

用熊猫read_csv导入数据:标头有两行错误

来自分类Dev

即使CTE应该只有好的日期也会出现转换错误

来自分类Dev

使用 drange 转换日期时间对象列表以在 matplotlib 中绘图会出现错误

来自分类Dev

给定日期与今天之间的C ++天数

来自分类Dev

为什么read_csv()不解析我的日期?

来自分类Dev

用熊猫读取格式错误的“ csv”文件

来自分类Dev

在LINQ中比较日期会出现错误-无法将方法转换为商店表达式

来自分类Dev

写时间(日期时间)的最安全方法

来自分类Dev

如何在vb.net中的SQL查询中使用可变日期而不会出现语法11错误

来自分类Dev

如何在vb.net内的SQL查询中使用可变日期而不会出现语法11错误

来自分类Dev

Android:从JSON响应转换日期时出现错误“无法将给定对象格式化为日期”

来自分类Dev

使用熊猫日期时间函数时出现日期错误

来自分类Dev

Python - 用 sudo 日期替换缺失的日期

来自分类Dev

无法使用 Javascript 将给定日期与今天日期进行比较

来自分类Dev

熊猫:读取CSV时出现错误错误

来自分类Dev

在熊猫中读取具有历史日期的CSV文件

来自分类Dev

熊猫使用多个空格读取csv并解析日期

Related 相关文章

  1. 1

    熊猫read_csv解析日期

  2. 2

    如何发现今天的日期是否在其他两个日期之间?

  3. 3

    如何发现今天的日期是否在其他2个日期之间?

  4. 4

    在熊猫read_csv中以毫秒为单位解析日期

  5. 5

    如何在熊猫中使用read_csv将时区感知日期时间读取为时区天真本地DatetimeIndex?

  6. 6

    在方法上计算给定数会出现此错误

  7. 7

    对今天的日期使用 grep 时出现 EOF 错误

  8. 8

    如何使熊猫read_csv从其自己的csv生成的文件中正确解析日期?

  9. 9

    Windows上的熊猫read_csv错误

  10. 10

    熊猫read_csv导入结果错误

  11. 11

    熊猫中的编码错误read_csv

  12. 12

    熊猫read_csv导入结果错误

  13. 13

    用熊猫read_csv导入数据:标头有两行错误

  14. 14

    即使CTE应该只有好的日期也会出现转换错误

  15. 15

    使用 drange 转换日期时间对象列表以在 matplotlib 中绘图会出现错误

  16. 16

    给定日期与今天之间的C ++天数

  17. 17

    为什么read_csv()不解析我的日期?

  18. 18

    用熊猫读取格式错误的“ csv”文件

  19. 19

    在LINQ中比较日期会出现错误-无法将方法转换为商店表达式

  20. 20

    写时间(日期时间)的最安全方法

  21. 21

    如何在vb.net中的SQL查询中使用可变日期而不会出现语法11错误

  22. 22

    如何在vb.net内的SQL查询中使用可变日期而不会出现语法11错误

  23. 23

    Android:从JSON响应转换日期时出现错误“无法将给定对象格式化为日期”

  24. 24

    使用熊猫日期时间函数时出现日期错误

  25. 25

    Python - 用 sudo 日期替换缺失的日期

  26. 26

    无法使用 Javascript 将给定日期与今天日期进行比较

  27. 27

    熊猫:读取CSV时出现错误错误

  28. 28

    在熊猫中读取具有历史日期的CSV文件

  29. 29

    熊猫使用多个空格读取csv并解析日期

热门标签

归档