python - 使用带有日期/时间的 CSV 文件的 loadtext

标签 python datetime csv numpy

我是 Python 新手(从 Matlab 转换),并且在读取 CSV 文件时遇到问题。基本上,我想创建一个数组,其中一个变量中包含日期/时间序列,另一个变量中包含相应的数据值(湿度测量值)(我想跳过第二列)。文件格式如下:

07-24-14 01:00:01 PM,%RH,36.988
07-24-14 02:00:01 PM,%RH,40.832
...

我使用 numpy loadtxt 函数如下(注意:文件中有 21 个标题行):

def datestr2num(s):
    return datetime.strptime(s,'%m-%d-%y %I:%M:%S %p')

dates,vals = np.loadtxt('File.csv',usecols=(0,2),skiprows=21,converters={0:datestr2num},delimiter=',',unpack=True)

我收到以下错误:

TypeError: float() argument must be a string or a number

提前感谢您的帮助!

最佳答案

另一种方法是使用浮点时间表示。我经常使用 matplotlib 时间戳:

from matplotlib.dates import date2num

def datestr2num(s):
    return date2num(datetime.strptime(s, '%m-%d-%y %I:%M:%S %p'))

或者你可以使用 python 内置的“时间”:

import time

def datestr2num(s):
    return time.mktime(datetime.strptime(s, '%m-%d-%y %I:%M:%S %p').timetuple())

如果您无论如何都会使用这些表示形式之一,那么这可能会很有效。如果您想要日期时间,请使用 dano 的解决方案。

关于python - 使用带有日期/时间的 CSV 文件的 loadtext,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26184154/

相关文章:

python - 如何将日期字符串转换为 ISO8601 标准?

r - 如何将数据导入R中的向量

python - Tensorflow Dataset API 读取 csv 转换 tfrecords

python - 将 long for 语句缩短到最多 79 列的正确方法

python - PyQt4 PostgreSQL QSqlQuery BC信息丢失

Python:匹配字符串并就地替换

string - 将数字转换为 YYYYMM

python - python 中的正则表达式跳过行的前 2 个字符

python - 如何从分类数据中提取小时、星期几?

java - 如何将数组列表写入 CSV