从.txt文件导入时间戳

时间:2018-10-12 18:31:48

标签: python arrays numpy

我目前正在尝试使用numpy的genfromtxt函数导入.txt文件。通常,这很好用。但是,这次我导入的是热量与时间的txt文件,其中时间以00:00:00格式记录。因此,在10秒标记处,时间栏将显示为00:00:10。在一个小时标记处,时间列将显示为01:00:00,依此类推。不幸的是,numpy的genfromtxt函数将其读取为“ nan”。有关如何解决此问题的任何建议?

这是我的代码:

<ReactTooltip afterShow={() => { setTimeout(ReactTooltip.hide(), 5000) }} />

2 个答案:

答案 0 :(得分:0)

您是否尝试过使用Pandas导入文件?当数据结构合理时,Pandas通常非常好。

import pandas as pd

df = pd.read_csv('Lucifer Heat Treating Oven Heat Up Time(1).txt')

答案 1 :(得分:0)

我想出了答案。可能有一种更简单的方法,但是我发现是进入txt文件并删除所有冒号。这使一分钟看上去像是“ 100”,而一小时看上去像是“ 10000”。

我使用以下代码将时间戳“固定”到我们的60秒分钟和60分钟小时的世界中。可能有一种更简单的方法,而经验更丰富的编码人员可能会嘲笑我的代码的笨拙和庞大,但这确实有效。

def fix_time(array):
    result = []
    j = 10
    k = 20
    l = 1
    y = 1
    p = 0
    for i in array:
        n = i
        if i < 100:
            result.append(i)
        elif n/j < k and i < 10000:
            i = i-l*40 - p * 40
            result.append(i)
        elif n/j < k and i >= 10000:
            i = i - y * 40 - p * 40
            result.append(i)
        else:
            k = k + 10
            l = l + 1
            if l == 60:
                y = 160
                k = 1010
            if n/j <= k and k < 1010:
                i = i - l * 40 - p * 40
                result.append(i)
            elif n/j <= k and k >= 1010 and k < 1020:
                i = i - y * 40 - p * 40
                result.append(i)
            elif n/j <= k and k >= 1020:
                p = p + 1
                i = i - y * 40 - p * 40
                result.append(i)
            elif p > 1:
                k = k + 400
                y = y + 160
                p = 0
                if n/j <= k:
                    i = i - y * 40 - p * 40
                    result.append(i)
            else:
                while n/j >= k:
                    k = k + 10
                    p = p + 1
                if n/j < k:
                    p = p + 1
                    i = i - y * 40 - p * 40
                    result.append(i)
    return result