python - Pandas 使用 for 循环创建额外的数据帧
问题描述
出于 SO 目的,这是一些组成的时间序列数据:
import pandas as pd
import numpy as np
from numpy.random import randint
np.random.seed(10) # added for reproductibility
rng = pd.date_range('10/9/2018 00:00', periods=1000, freq='1H')
df = pd.DataFrame({'Random_Number':randint(1, 100, 1000)}, index=rng)
问题,我如何创建一个函数,该函数可以在 pandas 数据框中为每天返回重新采样的 97.5 和 2.5 个百分位数值?我知道下面的这段代码甚至没有关闭它只会返回整个数据集的上下百分位数。最终,我试图每天分解它,返回索引的数据框将是重新采样当天的时间戳(日期)。
def createDfs(data):
for day in df:
dfDay = pd.DataFrame()
hi = df.quantile(0.975)[0]
low = df.quantile(0.025)[0]
data = {'upper_97.5%': [hi],
'lower_2.5%' : [low]}
dfUpperLower = pd.DataFrame(data)
#dfUpperLower.set_index('Date')
return dfUpperLower
任何提示都非常感谢..
解决方案
我认为您只想使用.resample
with .quantile
:
In [10]: df.resample('1D').quantile([0.025, 0.975]).unstack()
Out[10]:
Random_Number
0.025 0.975
2018-10-09 5.600 91.700
2018-10-10 12.575 94.425
2018-10-11 5.575 92.400
2018-10-12 9.875 97.425
2018-10-13 2.725 87.550
2018-10-14 10.200 96.425
2018-10-15 10.725 96.425
...
推荐阅读
- firebase - Flutter)如何从 Firebase 实时数据库中检索某些值?
- python - 连接列表中存在的数据框列,Python 3.6
- html - Perl 模板工具包 <% IF %> 条件似乎不起作用
- python - Python 请求 - 发布 json
- gluon - maven-client-plugin、GraalVM 和类初始化
- python - 无法导入“numpy”pylint(导入错误)
- python - AttributeError:“列表”对象没有属性“替换”Selenium Python
- assembly - 如何使用 Rust 的 iced-x86 从指令字符串生成操作码
- java - 将 Spring Boot 项目作为库发布到 maven 存储库中
- reactjs - HtmlToCanvas 作物 svg