程序员最近都爱上了这个网站  程序员们快来瞅瞅吧!  it98k网:it98k.com

本站消息

站长简介/公众号

  出租广告位,需要合作请联系站长

+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

暂无数据

在Python和Pandas中使用dd.mm.yyyy读取csv

发布于2019-10-07 09:56     阅读(434)     评论(0)     点赞(30)     收藏(3)


我正在读取德语日期格式的csv文件。似乎在这篇文章中工作正常:

使用pandas / python从导入的CSV中选择日期

但是,在我看来,日期似乎不被识别。我在测试文件中找不到任何错误的字符串。

import pandas as pd
import numpy as np


%matplotlib inline
import matplotlib.pyplot as plt

from matplotlib import style
from pandas import DataFrame

style.use('ggplot')

df = pd.read_csv('testdata.csv', dayfirst=True, parse_dates=True)
df[:5]

表

结果是:

屏幕截图

因此,带有日期的列不能这样识别。我在这里做错了什么?还是这个日期格式根本不兼容?

  • OSX 10.10.3
  • 蟒蛇康达3.13.0
  • Python 3.4.3-0
  • iPython笔记本3.1.0

解决方案


如果使用,parse_dates=Trueread_csv尝试索引解析为日期因此,您还需要使用以下命令将第一列声明为索引index_col=[0]

In [216]: pd.read_csv('testdata.csv', dayfirst=True, parse_dates=True, index_col=[0])
Out[216]: 
            morgens  mittags  abends
Datum                               
2015-03-16      382      452     202
2015-03-17      288      467     192

或者,如果您不希望该Datum列成为索引,则可以使用 parse_dates=[0] 显式告诉read_csv 将第一列解析为日期:

In [217]: pd.read_csv('testdata.csv', dayfirst=True, parse_dates=[0])
Out[217]: 
       Datum  morgens  mittags  abends
0 2015-03-16      382      452     202
1 2015-03-17      288      467     192

内幕read_csv用于dateutil.parser.parse解析日期字符串:

In [218]: import dateutil.parser as DP

In [221]: DP.parse('16.03.2015', dayfirst=True)
Out[221]: datetime.datetime(2015, 3, 16, 0, 0)

由于dateutil.parser解析DD.MM.YYYY格式格式的日期字符串没有问题,因此您不必在此处声明自定义日期解析器。



所属网站分类: 技术文章 > 问答

作者:黑洞官方问答小能手

链接:https://www.pythonheidong.com/blog/article/132099/8c53a42c85ed10a24a7b/

来源:python黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

30 0
收藏该文
已收藏

评论内容:(最多支持255个字符)