如何在Python中读取CSV文件并将字符串转换为不同类型送入数组?
我有一个csv文件,里面包含了日期时间和四个数字(number1, number2, number3, number4)。
我用代码读取了这个文件,但我不知道怎么改变这些数据的类型。
我的代码是:
import csv
import datetime
myarray=([])
filename='Contract.csv'
f=csv.reader(open(filename,'rb'), delimiter=',')
for row in f:
myarray=array([row for row in f])
print myarray
我得到的数组看起来像这样:
[['2010-05-01 15:20:12 0000' '345' '234' '163' '120'],
['2010-05-02 15:22:12 0000' '335' '214' '164' '120'],
...]
我不知道怎么把第一列转换成日期时间格式,其他的转换成浮点数。请帮帮我。
谢谢!
2 个回答
0
你需要把这些值转换一下:
i=int(s)
dt=datetime.datetime.strptime(s, '%Y-%m-%d ...')
1
首先,看看这个问题。
说到这里,我也用一个这样的函数(需要python-dateutil库)来处理日期:
from dateutil.parser import parse as date_parser
def _cast_value(self, value):
tests = (
int,
float,
lambda value: date_parser(value)
)
for test in tests:
try:
return test(value)
except ValueError:
continue
return value
dateutil
可以帮你处理各种不同格式的日期。