我想为以下输入文件的每一行创建一个新列,该列包含自1970年以来的秒数:
timestamp, air_temp, rh, pressure, dir, spd
2016-11-30T00:00:00Z,-36.50,56.00,624.60,269.00,5.80
2016-11-30T01:00:00Z,-35.70,55.80,624.70,265.00,5.90
2016-11-30T02:00:00Z,-34.80,56.00,625.00,266.00,6.30
第一列表示时间戳,但它包含额外的字符“T”和“Z”。我当前的代码如下:
^{pr2}$这将返回我想要的结果,但如果输入文件很大,则需要很长时间。如果时间戳没有这些额外的字符,我会直接使用它而不是计算年、月、日和小时。有更好的方法吗?任何想法都将不胜感激。在
而不是使用字符串切片。为什么不用逗号分隔字符串?并使用datetime模块中的strptime方法将字符串datetime转换为datetime对象。在
示例:
输出:
^{pr2}$可以通过首先在
,
上拆分文件中的行并将其转换为datetime
对象来实现这一点要转换为秒,只需使用:
^{pr2}$输入:
输出:
^{pr2}$请注意,调用
.timestamp()
和从1970年的epoch中减去datetime之间是有区别的。这源于这两种方法如何处理(或不处理)夏令时。阅读更多here相关问题 更多 >
编程相关推荐