gpt4 book ai didi

python - 从 numpy loadtxt() 获取日期列

转载 作者:太空宇宙 更新时间:2023-11-04 08:40:46 24 4
gpt4 key购买 nike

我有一个包含下表的文本文件。

Day  Month Year Avg Power
01 01 2000 30
02 01 2000 41
04 01 2000 55
05 01 2000 78
06 01 2000 134
07 01 2000 42

我想将日、月和年列加载到单个日期时间值中。为此,请执行以下步骤。但代码无法按我的预期工作。

from numpy import loadtxt
import datetime

def date_converter(x,y,z):
date = "{},{},{}".format(x,y,z)
return datetime.datetime.strptime(date,r"%d,%m,%Y")

data3 = loadtxt('complex_data_file.txt',dtype=int, usecols=(0,1,2,4),
converters={(0,1,2):date_converter,3:int})

我必须做什么才能达到我的要求?

最佳答案

我将使用 Pandas 模块来完成此任务:

In [228]: df = pd.read_csv(fn, usecols=[0,1,2,4], parse_dates={'Date':[2,1,0]})

In [229]: df
Out[229]:
Date Avg Power
0 2000-01-01 30
1 2000-01-02 41
2 2000-01-04 55
3 2000-01-05 78
4 2000-01-06 134
5 2000-01-07 42

In [230]: df.dtypes
Out[230]:
Date datetime64[ns]
Avg Power int64
dtype: object

将其转换为 Numpy 数组也非常容易:

In [231]: df.values
Out[231]:
array([[Timestamp('2000-01-01 00:00:00'), 30],
[Timestamp('2000-01-02 00:00:00'), 41],
[Timestamp('2000-01-04 00:00:00'), 55],
[Timestamp('2000-01-05 00:00:00'), 78],
[Timestamp('2000-01-06 00:00:00'), 134],
[Timestamp('2000-01-07 00:00:00'), 42]], dtype=object)

关于python - 从 numpy loadtxt() 获取日期列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45131116/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com