gpt4 book ai didi

Python pandas resample 添加的日期不存在于原始数据中

转载 作者:太空狗 更新时间:2023-10-30 02:33:19 25 4
gpt4 key购买 nike

我正在使用 pandas 将存储在 data_m 中的日内数据转换为每日数据。出于某种原因,resample 添加了当天数据中不存在的行。例如,1/8/2000 不在日内数据中,但日数据包含该日期的一行,该日期的值为 NaN。 DatetimeIndex 的条目比实际数据多。我做错了什么吗?

data_m.resample('D', how = mean).head()
Out[13]:
x
2000-01-04 8803.879581
2000-01-05 8765.036649
2000-01-06 8893.156250
2000-01-07 8780.037433
2000-01-08 NaN

data_m.resample('D', how = mean)
Out[14]:
<class 'pandas.core.frame.DataFrame'>
DatetimeIndex: 4729 entries, 2000-01-04 00:00:00 to 2012-12-14 00:00:00
Freq: D
Data columns:
x 3241 non-null values
dtypes: float64(1)

最佳答案

您所做的看起来是正确的,只是 pandas 为空数组的平均值提供了 NaN。

In [1]: Series().mean()
Out[1]: nan

resample转换为常规时间间隔,因此如果那天没有样本,您将得到 NaN。

大多数时候 NaN 不是问题。如果是,我们可以使用 fill_method(例如 'ffill'),或者如果您真的想删除它们,您可以使用 dropna(不是推荐):

data_m.resample('D', how = mean, fill_method='ffill')
data_m.resample('D', how = mean).dropna()

更新:现代的等价物似乎是:

In [21]: s.resample("D").mean().ffill()
Out[21]:
x
2000-01-04 8803.879581
2000-01-05 8765.036649
2000-01-06 8893.156250
2000-01-07 8780.037433
2000-01-08 8780.037433

In [22]: s.resample("D").mean().dropna()
Out[22]:
x
2000-01-04 8803.879581
2000-01-05 8765.036649
2000-01-06 8893.156250
2000-01-07 8780.037433

参见 resample docs .

关于Python pandas resample 添加的日期不存在于原始数据中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13984461/

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