首页 > 编程知识 正文

python从数据库中提取数据,python列表中的类

时间:2023-05-05 12:46:01 阅读:115302 作者:4805

首先,使用随机数据创建数据帧。 导入pandas as PD

import numpy as np

来自日期导入日期,时间增量

ab=pd.DataFrame (

ab [ ' subjectid ' ]=NP.random.randint (5,size=200 ) # random list of ' subjects ' from0to 4

ab [ ' day _ number ' ]=NP.random.randint (50,size=200 ) #random list of 'dates' from 0 to 50

ab [ ' real _ date ' ]=ab.day _ number.apply (lambdad : datetime (2018,1,1 ) time delta (days=d ) ) ) ) tosi

ab [ ' score1' ]=NP.random.randint (200,size=200 ) # meanttosimulateonemeasurementfromonesubject

ab [ ' score2' ]=NP.random.randint (400,size=200 ) # meanttosimulateasecondmeasurement

min_day=ab.real_date.min (

ab=ab.groupby(['subjectid ',' real _ date ' ].sum ) # becausesomesubjectshavemorethan1scoreeachday

打印(ab.head ) ) )

day_number score1 score2

subjectID real_date

0 2018-01-01 0 306 273

2018-01-04 3 32 60

2018-01-05 4 61 135

2018-01-08 21 477 393

2018-01-09 8 22 341

2018-01-10 9 137 30

2018-01-11 30 281 674

2018-01-14 13 183 396

2018-01-15 14 41 337

2018-01-16 15 83 50

然后,在没有数据的天数中输入第二天的数据。

^{pr2}$

4天的下一次重新采样(分组依据) RES=df.reset_index ) level='subjectid ' ).groupby ) ' subjectid ' ).resample ) ' 4d ' )

RES=RES.drop (columns=' subjectid ' ) )。

打印(RES.head ) )

day_number score1 score2

subjectID real_date

0 2018-01-01 0 306 273

2018-01-05 4 61 135

2018-01-09 8 22 341

2018-01-13 13 183 396

2018-01-17 18 91 46

2018-01-21 20 76 333

2018-01-25 48 131 212

2018-01-29 29 92 81

2018-02-02 32 172 55

2018-02-06 72 98 246

最后,如果在4天以上的周期内没有数据,则重新设置索引进行处理。 RES=RES.reset_index(real_date )、drop=True ) # the real _ datehasnomeaninganymore

RES [ ' real _ date ' ]=RES.day _ number.apply (lambdad 3360 min _ daytime delta (days=d ) ) goodreal_datebaser

RES=RES.drop (columns=' day _ number ' ) )。

RES=RES.set_index(real_date ),append=True ) ) )。

RES=RES.group by (level=[ ' subjectid ',' real _ date ' ].first ) # regroupsperiodswithnodataformorethan4days

打印(RES.head ) )

score1 score2

subjectID real_date

0 2018-01-01 306 273

2018-01-05 61 135

2018-01-09 22 341

2018-01-14 183 396

2018-01-19 91 46

2018-01-21 76 333

2018-01-30 92 81

2018-02-02 172 55

2018-02-10 40 218

2018-02-15 110 112

这有点复杂,但我认为这是最好的方法。 虽然不知道效率,但好像没那么差。 在

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。