Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/278.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 正在转换字符串为的日期_Python_Csv_Pandas_Datetime_Numpy - Fatal编程技术网

Python 正在转换字符串为的日期

Python 正在转换字符串为的日期,python,csv,pandas,datetime,numpy,Python,Csv,Pandas,Datetime,Numpy,我从python、pandas和matplotlib开始。我正在处理超过百万条的数据。我正在尝试更改日期格式。在CSV文件中,日期格式为2011年6月23日。我想用未来的日期来为每个候选人规划捐款金额。如何将日期格式转换为熊猫的可读格式 我的代码: 第一候选人 数据片 正在尝试转换为新的日期格式 这是错误消息 您需要使用不同的日期格式字符串: format='%d-%b-%y' 为什么? 错误消息给出了错误的线索: ValueError:无法将字符串转换为浮点:“05-JUL-11” 控制转

我从python、pandas和matplotlib开始。我正在处理超过百万条的数据。我正在尝试更改日期格式。在CSV文件中,日期格式为2011年6月23日。我想用未来的日期来为每个候选人规划捐款金额。如何将日期格式转换为熊猫的可读格式

我的代码: 第一候选人 数据片 正在尝试转换为新的日期格式 这是错误消息
您需要使用不同的日期格式字符串:

format='%d-%b-%y'
为什么?

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

ValueError:无法将字符串转换为浮点:“05-JUL-11”

控制转换,当前为:

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

作为替代方法,您可以使用dateutil.parser直接解析包含字符串的日期,我已经为演示创建了一个随机数据帧

l = [] 
for i in range(100):
    l.append('23-JUN-11') 
B = pd.DataFrame({'Date':l})
现在,让我们导入dateutil.parser并将其应用于我们的日期列

import dateutil.parser
B['Date2'] = B['Date'].apply(lambda x : dateutil.parser.parse(x))
B.head()
Out[106]: 
    Date      Date2
0  23-JUN-11 2011-06-23
1  23-JUN-11 2011-06-23
2  23-JUN-11 2011-06-23
3  23-JUN-11 2011-06-23
4  23-JUN-11 2011-06-23

请展示一个日期示例-如图所示csv@GiantsLoveDeathMetal列名为contb_receive_dt,日期格式为2011年6月20日,但当我打印数组时,我将其视为日期格式2011年6月23日,您能否发布一段CSV,151MB有点大。仅仅一百行就足够解决这个问题了,是吗?@JimFactor我发布了一个新链接,其中包含149个条目的较小版本。
format='%d-%b-%y'
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)
l = [] 
for i in range(100):
    l.append('23-JUN-11') 
B = pd.DataFrame({'Date':l})
import dateutil.parser
B['Date2'] = B['Date'].apply(lambda x : dateutil.parser.parse(x))
B.head()
Out[106]: 
    Date      Date2
0  23-JUN-11 2011-06-23
1  23-JUN-11 2011-06-23
2  23-JUN-11 2011-06-23
3  23-JUN-11 2011-06-23
4  23-JUN-11 2011-06-23