python - Pandas 用字符串转换日期

标签 python csv pandas datetime numpy

我从 python、pandas 和 matplotlib 开始。我正在处理超过百万条目的数据。我正在尝试更改日期格式。在 CSV 文件中,日期格式为 23-JUN-11。我想在未来使用日期来绘制每个候选人的捐赠金额。如何将日期格式转换为 pandas 可读的格式?

Here is the link to cut file 149 entries

我的代码:

%matplotlib
import matplotlib.pyplot as plt
import pandas as pd
import numpy as np

第一候选人

reader_bachmann = pd.read_csv('P00000001-ALL.csv' ,converters={'cand_id': lambda x: str(x)[1:]},parse_dates=True, squeeze=True, low_memory=False, nrows=411 )

date_frame = pd.DataFrame(reader_bachmann, columns = ['contb_receipt_dt'])

数据切片

  s = date_frame.iloc[:,0]
    date_slice = pd.Series([s])
    date_strip = date_slice.str.replace('JUN','6') 

尝试转换为新的日期格式

 date = pd.to_datetime(s, format='%d%b%Y')
    print(date_slice)

这是错误信息

ValueError: could not convert string to float: '05-JUL-11'

最佳答案

您需要使用不同的日期格式字符串:

format='%d-%b-%y'

为什么?

错误消息给出了错误的线索:

ValueError: could not convert string to float: '05-JUL-11'

format string控制转换,目前是:

format='%d%b%Y'

需要的字段是:

%y - year without a century (range 00 to 99)
%b - abbreviated month name
%d - day of the month (01 to 31)

缺少的是分隔数据字符串中字段的 -,以及表示两位数年份的 y 而不是当前的 Y 四位数年份。

关于python - Pandas 用字符串转换日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43525460/

相关文章:

javascript - 如何在html和javascript中声明全局变量

适合初学者的 Python 框架

php - 如何在使用 implode 时将附加数据插入 mysql

python - pandas-更改重新采样时间序列的开始和结束日期

python - 查找值小于/大于另一个数据帧的行

python - 在Python中根据字符串值创建分类列

python - 如何在 python 中优雅地交错两个长度不均匀的列表?

python - 如何同时在Python tkinter中读取csv?

mysql - 将 CSV 文件导入 MySQL 表,仅导入第一行

python - Pandas 与 Numpy 索引 : Why this fundamental difference in ordering of indices?