随机进入采样,限制在几分之一秒内
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了随机进入采样,限制在几分之一秒内相关的知识,希望对你有一定的参考价值。
我有带时间戳的标记数据,每个规则时间段的条目数不规则。即,有时我每秒可以输入25个条目,而其他人每秒可以输入100个条目(这是财务数据)。
要创建一个新的数据库,我想随机选择一个我在定义的时间段内拥有的条目,比如说前半秒和后半秒,以减小数据集的大小,并且在条目内创建统一性。如何在熊猫中做到这一点?
非常感谢。
答案
[可能不是最好的,但我认为它可以工作:按您想要的秒数除以resample
您的DataFrame / Series,然后从每个bin中挑选一个随机行(如果没有数据,则放NaN
):
import pandas as pd
import numpy as np
#making fake date, randomly picked times in a minute at 100ms frequency
dr = pd.date_range('01-01-2020 9:00:00', '01-01-2020 9:01:00', freq='100ms')
dates = sorted(np.random.choice(dr, size=100))
df = pd.DataFrame(index=dates,data=np.random.random(size=(100,2)),columns=['Values','Values2'])
#resample
resampled = df.resample('500ms')
#iterate over resampled, and pick a random row (if there, else np.nan)
output = pd.DataFrame(columns=df.columns)
for time,frame in resampled:
if not frame.empty:
random_index = np.random.choice(range(len(frame.index)))
output.loc[time] = list(frame.iloc[random_index])
else:
output.loc[time] = np.nan
输入:
#df.head(10)
Values Values2
2020-01-01 09:00:00.100 0.190373 0.831841
2020-01-01 09:00:00.200 0.218069 0.586812
2020-01-01 09:00:00.500 0.611154 0.603198
2020-01-01 09:00:00.900 0.076038 0.061462
2020-01-01 09:00:00.900 0.519908 0.259880
2020-01-01 09:00:00.900 0.652016 0.925601
2020-01-01 09:00:01.000 0.256711 0.586374
2020-01-01 09:00:01.300 0.939387 0.409488
2020-01-01 09:00:01.400 0.075527 0.691568
2020-01-01 09:00:01.400 0.283443 0.490719
输出:
#output.head(3)
Values Values2
2020-01-01 09:00:00.000 0.190373 0.831841
2020-01-01 09:00:00.500 0.652016 0.925601
2020-01-01 09:00:01.000 0.256711 0.586374
以上是关于随机进入采样,限制在几分之一秒内的主要内容,如果未能解决你的问题,请参考以下文章
可构建AI的「AI」诞生:几分之一秒内,就能预测新网络的参数
nmap 在 localhost 上显示随机打开的端口几分之一秒