gpt4 book ai didi

python - 以日期时间形式读入年份、DOY 和微秒数据

转载 作者:太空宇宙 更新时间:2023-11-03 16:22:38 24 4
gpt4 key购买 nike

我有一个格式如下的数据文件:

year  doy    milliseconds    data
2000 103 272220 1.123
2000 103 373058 1.342
2000 103 471764 0.743
2000 103 573509 1.666
2000 103 664624 1.736
2000 103 758810 1.762
2000 103 951634 1.888
2000 103 1071637 1.444
2000 103 1156676 1.001

我想使用 python 来阅读。我首先使用 awk 转换为微秒,以便日期时间模块可以读取数据,但它无法读取。数据读取良好,但日期返回为“nan”。我还尝试过转换为秒并四舍五入为整数值,分钟也是如此。我想也许我需要读入数据,然后将毫秒更改为小时:分钟:秒以使用日期时间,但我想首先检查这里是否有更好的方法或者我是否错误地使用了日期时间。感谢您的帮助!

这是我的代码:

datefunc = lambda x: mdates.date2num(datetime.datetime.strptime(x,'%Y %j %S'))
data = np.genfromtxt(sat_filenames,delimiter=(13,10),converters={0:datefunc},
names='Date, Var')

我通过空格号来表示分隔符,因为我无法让 '\t' 工作 - 但如果可以的话请告诉我!

最佳答案

使用pandas:

import pandas as pd
f = r"df2dt.txt"
df = pd.read_csv(f, delim_whitespace=True)
td_ms = pd.to_timedelta(df['milliseconds'], unit='ms')
td_D = pd.to_timedelta(df['doy'] - 1, unit='D')
date_str = df['year'].astype(str)
date = pd.to_datetime(date_str, format="%Y", yearfirst=True)
date_time = date + td_D + td_ms
data = df['data']
print(date_time, data)

df2dt.txt 是文件中的数据。

关于python - 以日期时间形式读入年份、DOY 和微秒数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38277336/

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