Python 如何转换此表';s';有效';去熊猫的约会和时间?

Python 如何转换此表';s';有效';去熊猫的约会和时间?,python,pandas,Python,Pandas,我有一个包含METAR(天气)数据的txt文件。该数据以不均匀的间隔记录。我正在尝试使用matplotlib根据这些数据制作一些图表。我认为要做到这一点,我需要使用txt文件的“有效”时间(UTC)。那么,我将如何按照有效时间对pandas数据帧进行索引,并使其识别为UTC中的日期和时间呢 我尝试过按日期解析,但我认为这不是正确的方法 KORD = pd.read_table('ORD.txt',parse_dates=['valid'], delimiter=',', index_col=1)

我有一个包含METAR(天气)数据的txt文件。该数据以不均匀的间隔记录。我正在尝试使用matplotlib根据这些数据制作一些图表。我认为要做到这一点,我需要使用txt文件的“有效”时间(UTC)。那么,我将如何按照有效时间对pandas数据帧进行索引,并使其识别为UTC中的日期和时间呢

我尝试过按日期解析,但我认为这不是正确的方法

KORD = pd.read_table('ORD.txt',parse_dates=['valid'], delimiter=',', index_col=1)
ORD.txt看起来像: 我有一个数据框,其中索引是按日期,但我不确定它是按UTC的日期和时间

输出如下所示:
希望我正确地理解了你的问题。您可以读取数据并使用默认的datatime转换

import pandas as pd

data = pd.read_csv("datalake/ORD.txt", sep=',')    
data["valid"] = pd.to_datetime(data.valid, errors='coerce')
data = data.dropna(subset=["valid"])
data = data.set_index("valid")
有效列的输出:

data.index
DatetimeIndex(['2011-01-30 00:51:00', '2011-01-30 00:00:00'], dtype='datetime64[ns]' ...

因此,默认情况下,它会将每行转换为datetime 64格式。

希望我正确理解了您的问题。您可以读取数据并使用默认的datatime转换

import pandas as pd

data = pd.read_csv("datalake/ORD.txt", sep=',')    
data["valid"] = pd.to_datetime(data.valid, errors='coerce')
data = data.dropna(subset=["valid"])
data = data.set_index("valid")
有效列的输出:

data.index
DatetimeIndex(['2011-01-30 00:51:00', '2011-01-30 00:00:00'], dtype='datetime64[ns]' ...

因此,默认情况下,它会将每行转换为datetime 64格式。

我认为
valid
列已经在UTC中,因此不需要转换它

查看您提供的源行。 它包含
2011-01-30 00:51
as
valid

然后查看METAR数据的开头:
KORD 300051Z

KORD
是机场代码,
300051Z
包含:

  • 30
    -月日
  • 0051
    -小时和分钟
  • Z
    -祖鲁
因此,
valid
列和METAR数据段中的小时/分钟部分 如上所述,它们是相等的

请注意代码示例中的
parse_dates=['valid']
index_col=1

他们的意思是:

  • valid
    列应转换为DateTime(因此类型正确)
  • 第1列(计算从0开始,因此有问题的列 是否
    有效
    )应为索引
您提供的输出证实了我在上面写的内容:

  • 第一行(station,tmpf,…)包含“常规”列的名称
  • 下一行只包含
    valid
    ——索引列的名称

我认为
valid
列已经在UTC中,因此不需要转换它

查看您提供的源行。 它包含
2011-01-30 00:51
as
valid

然后查看METAR数据的开头:
KORD 300051Z

KORD
是机场代码,
300051Z
包含:

  • 30
    -月日
  • 0051
    -小时和分钟
  • Z
    -祖鲁
因此,
valid
列和METAR数据段中的小时/分钟部分 如上所述,它们是相等的

请注意代码示例中的
parse_dates=['valid']
index_col=1

他们的意思是:

  • valid
    列应转换为DateTime(因此类型正确)
  • 第1列(计算从0开始,因此有问题的列 是否
    有效
    )应为索引
您提供的输出证实了我在上面写的内容:

  • 第一行(station,tmpf,…)包含“常规”列的名称
  • 下一行只包含
    valid
    ——索引列的名称

我在运行DatetimeIndec时出错([..说名称DatetimeIndex未定义。是否有我没有导入的内容或我调用了错误的内容?您好,请尝试将索引设置为
数据。set_index(pd.DatetimeIndex(数据['valid']))
并从实际数据帧中删除该列。但这肯定不应该是任何导入问题。我在运行DatetimeIndex时出错([…说名称DatetimeIndex未定义。是否有我没有导入的内容或我调用了错误的内容?嗨,尝试将索引设置为
数据。set_index(pd.DatetimeIndex(data['valid'))
并从实际数据帧中删除该列。但它肯定不应该是任何导入问题。