python - to_datetime Value Error : at least that [year, month, day] 必须指定 Pandas

标签 python pandas csv datetime

我正在读取两个不同的 CSV,每个 CSV 的列中都有日期值。在 read_csv 之后,我想使用 to_datetime 方法将数据转换为日期时间。每个 CSV 中的日期格式略有不同,尽管在 to_datetime 格式参数中注明并指定了差异,但一个转换正常,而另一个返回以下值错误。

ValueError: to assemble mappings requires at least that [year, month, day] be sp
ecified: [day,month,year] is missing

首先dte.head()

0  10/14/2016  10/17/2016  10/19/2016    8/9/2016  10/17/2016   7/20/2016
1   7/15/2016   7/18/2016   7/20/2016    6/7/2016   7/18/2016   4/19/2016
2   4/15/2016   4/14/2016   4/18/2016   3/15/2016   4/18/2016   1/14/2016
3   1/15/2016   1/19/2016   1/19/2016  10/19/2015   1/19/2016  10/13/2015
4  10/15/2015  10/14/2015  10/19/2015   7/23/2015  10/14/2015   7/15/2015

此数据框使用以下代码可以很好地转换:

dte = pd.to_datetime(dte, infer_datetime_format=True)

dte = pd.to_datetime(dte[x], format='%m/%d/%Y')

第二个dtd.head()

0   2004-01-02 2004-01-02  2004-01-09 2004-01-16  2004-01-23  2004-01-30
1   2004-01-05 2004-01-09  2004-01-16 2004-01-23  2004-01-30  2004-02-06
2   2004-01-06 2004-01-09  2004-01-16 2004-01-23  2004-01-30  2004-02-06
3   2004-01-07 2004-01-09  2004-01-16 2004-01-23  2004-01-30  2004-02-06
4   2004-01-08 2004-01-09  2004-01-16 2004-01-23  2004-01-30  2004-02-06

此 csv 不使用以下任一方式进行转换:

dtd = pd.to_datetime(dtd, infer_datetime_format=True)

dtd = pd.to_datetime(dtd, format='%Y-%m-%d')

它返回上面的值错误。然而,有趣的是,使用 parse_dates 和 infer_datetime_format 作为 read_csv 方法的参数效果很好。这里发生了什么?

最佳答案

你可以堆叠/pd.to_datetime/unstack

pd.to_datetime(dte.stack()).unstack()

enter image description here

解释
pd.to_datetime 适用于字符串、列表或 pd.Seriesdte 是一个 pd.DataFrame,这就是您遇到问题的原因。 dte.stack() 生成一个 pd.Series,其中所有行都堆叠在一起。然而,在这种堆叠形式中,因为它是一个 pd.Series,我可以获得一个矢量化的 pd.to_datetime 来处理它。随后的 unstack 只是反转初始的 stack 以获得 dte

的原始形式

关于python - to_datetime Value Error : at least that [year, month, day] 必须指定 Pandas,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39992411/

相关文章:

python - 'List' 对象没有属性 'Values' 错误

python - [Pandas]如何获取每组top-n%的记录

ruby - 处理大量 CSV 文件

csv - 无法使用 gocsv 读取引用字段

text - 将 CSV 数据转换为 stackoverflow 友好的纯文本表格的工具?

python - 如何使用 ZPT 检查它是否是 Plone 网站中的主页?

python - Py2Exe 的单个可执行文件

python - Discord.py Async 的问题 - 欢迎留言

Python Pandas 以 DF2 列值为条件进行更新

python-3.x - 使用 python3 运行脚本时出错