gpt4 book ai didi

python - 重建索引以将缺失日期添加到 Pandas 数据框

转载 作者:行者123 更新时间:2023-11-28 22:39:52 27 4
gpt4 key购买 nike

我尝试解析如下所示的 CSV 文件:

dd.mm.yyyy   value

01.01.2000 1
02.01.2000 2
01.02.2000 3

我需要添加缺失的日期并用 NaN 填充相应的值。我在 this question 中使用了 Series.reindex :

import pandas as pd

ts=pd.read_csv(file, sep=';', parse_dates='True', index_col=0)

idx = pd.date_range('01.01.2000', '02.01.2000')

ts.index = pd.DatetimeIndex(ts.index)
ts = ts.reindex(idx, fill_value='NaN')

但结果是,由于日期格式(即 mm/dd 而不是 dd/mm),某些日期的值被交换:

01.01.2000   1
02.01.2000 3
03.01.2000 NaN
...
...
31.01.2000 NaN
01.02.2000 2

我尝试了几种方法(例如,将 dayfirst=True 添加到 read_csv)来正确执行此操作,但仍然无法弄清楚。请帮忙。

最佳答案

parse_dates 设置为第一列 parse_dates=[0]:

ts = pd.read_csv(file, sep=';', parse_dates=[0], index_col=0, dayfirst=True)

idx = pd.date_range('01.01.2000', '02.01.2000')

ts.index = pd.DatetimeIndex(ts.index)
ts = ts.reindex(idx, fill_value='NaN')
print(ts)

打印:

              value
2000-01-01 1
2000-01-02 2
2000-01-03 NaN
...
2000-01-31 NaN
2000-02-01 3

parse_dates=[0] 告诉 pandas 将第一列显式解析为日期。来自文档:

parse_dates : boolean, list of ints or names, list of lists, or dict

If True -> try parsing the index.

If [1, 2, 3] -> try parsing columns 1, 2, 3 each as a separate date column.

If [[1, 3]] -> combine columns 1 and 3 and parse as a single date column.

{'foo' : [1, 3]} -> parse columns 1, 3 as date and call result 'foo'

A fast-path exists for iso8601-formatted dates.

关于python - 重建索引以将缺失日期添加到 Pandas 数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34326546/

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