gpt4 book ai didi

python - 当日期和时间在不同的列中时,将数据从 csv 读取到 pandas

转载 作者:太空狗 更新时间:2023-10-29 21:55:23 24 4
gpt4 key购买 nike

我看了这个问题的答案:Parse dates when YYYYMMDD and HH are in separate columns using pandas in Python ,但它似乎对我不起作用,这让我觉得我做错了什么。

我有 .csv 文件中的数据,我正在尝试使用 pandas read_csv 函数读取这些数据。日期和时间在两个单独的列中,但我想将它们合并到一个包含日期时间对象的列“Datetime”中。 csv 看起来像这样:

    Note about the data
blank line
Site Id,Date,Time,WTEQ.I-1...
2069, 2008-01-19, 06:00, -99.9...
2069, 2008-01-19, 07:00, -99.9...
...

我正在尝试使用这行代码来阅读它:

   read_csv("2069_ALL_YEAR=2008.csv", skiprows=2, parse_dates={"Datetime" : [1,2]}, date_parser=True, na_values=["-99.9"])

但是,当我将它写回 csv 时,它看起来完全一样(除了 -99.9 更改为 NA,就像我用 na_values 参数指定的那样)。日期和时间位于两个单独的列中。据我了解,这应该创建一个名为 Datetime 的新列,该列由第 1 列和第 2 列组成,使用 date_parser 进行解析。我也尝试过使用 parse_dates={"Datetime": ["Date","Time"]}、parse_dates=[[1,2]] 和 parse_dates=[["Date", "Time"]]。我也尝试过使用 date_parser=parse,其中 parse 定义为:

    parse = lambda x: datetime.strptime(x, '%Y-%m-%d %H:%M')

这些都没有产生丝毫差异,这让我怀疑存在更深层次的问题。对它可能是什么有任何见解吗?

最佳答案

你应该更新你的 pandas,我推荐 latest stable version获取最新功能和错误修复。

此特定功能是 introduced in 0.8.0 ,并适用于 pandas 版本 0.11:

In [11]: read_csv("2069_ALL_YEAR=2008.csv", skiprows=2, parse_dates={"Datetime" : [1,2]}, na_values=["-99.9"])
Out[11]:
Datetime Site Id WTEQ.I-1
0 2008-01-19 06:00:00 2069 NaN
1 2008-01-19 07:00:00 2069 NaN

没有 date_parser=True(因为这应该是一个解析函数,请参阅 docstring)。

请注意,在提供的示例中,生成的“Datetime”列是其自身的系列,而不是 DataFrame 的索引值。如果您希望将日期时间值作为索引列而不是整数值,请传递指定所需列的 index_col 参数,在本例中为 0,因为生成的“日期时间”列是第一个列。

In [11]: read_csv("2069_ALL_YEAR=2008.csv", skiprows=2, parse_dates={"Datetime" : [1,2]}, index_col=0, na_values=["-99.9"])

关于python - 当日期和时间在不同的列中时,将数据从 csv 读取到 pandas,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17492923/

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