如何在Python中读取CSV文件并将字符串转换为不同类型送入数组?

1 投票
2 回答
625 浏览
提问于 2025-04-17 01:41

我有一个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可以帮你处理各种不同格式的日期。

撰写回答