从文件导入numpy数组时,如何将两个字段合并为一个字段?

2024-09-19 23:28:41 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个数据文件,我正在读取一个numpy数组,如下所示。在

#RIC,Date[G],Time[G],GMT Offset,Type,Open,High,Low,Last,Volume
ADH0,20100103,22:18:00.000,-6,Intraday 1Min,0.8915,0.8915,0.8915,0.8915,0
ADH0,20100103,22:22:00.000,-6,Intraday 1Min,0.89,0.89,0.89,0.89,0

我使用np.genfromtxt()函数阅读它,如下所示:

^{pr2}$

一切正常,但我希望将日期和时间字段合并为数组中的一个datetime列,而不是单独的列。我可以使用converter函数进行各个字段的转换,但是我看不到将两个单独的日期和时间字段合并为一个日期时间的方法。这能做到吗?在

谢谢,乔恩


Tags: 函数numpydatetime数据文件type时间数组
3条回答

看一下文档,我不认为有一种方法可以从np.genfromtxt内完成这项工作。最好的办法可能是像当前一样读入数据,然后创建一个新数组,将这两个列组合起来作为下一步的操作。

如果你不关心速度,这是一个相当直接的方法,尽管是一个眼睛:

raw_csv = csv.reader(open('file'))
joined_columns = np.array([[[i[0]]+[str(i[1])+'sep_string'+str(i[2])]+i[3:]]\
                 for i in raw_csv])

不是直接的,如果你只是在加载之前对csv文件进行切片,这可能会更容易,例如使用一个非常愚蠢的脚本,如下面所示:

gawk -F, '{print $1","$2"_"$3","$4","$5","$6","$7","$8","$9","$10}' input.csv

这将把字段2和3与下划线组合在一起,您可以对其使用时间戳stringparser。

相关问题 更多 >