baoshiwei
2026-04-01 81b0ad0124847f083990d574dc8d20961ec6e713
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
ó
%õeiC#ãó,•SSKrSSKJr "SS5rg)éN)Ú    lru_cachecóF•\rSrSrSrSrS SjrS SjrSrSr    Sr
S    r g
) ÚDataProcessingServiceécóv•UbUR(aU$UR5nURS5nUSR[5US'USR[5US'USR[5US'SUR
;ax[ R"US5US'USRRc!USRRS5US'USRRS5US'U$![an[S    U35 UsSnA$SnAff=f)
uH
清洗数据
:param df: åŽŸå§‹æ•°æ®æ¡†
:return: æ¸…洗后的数据框
NrÚ count_underÚcount_in_rangeÚ
count_overÚtimeÚUTCz Asia/Shanghaiu数据清洗失败: )ÚemptyÚcopyÚfillnaÚastypeÚintÚcolumnsÚpdÚ to_datetimeÚdtÚtzÚ tz_localizeÚ
tz_convertÚ    ExceptionÚprint)ÚselfÚdfÚ
cleaned_dfÚes    ÚZC:\Users\admin\Documents\trae_projects\trt_analyse\app\services\data_processing_service.pyÚ
clean_dataÚ DataProcessingService.clean_datas6€ð ‰:˜ŸŸØˆIð    àŸ™›ˆJð$×*Ñ*¨1Ó-ˆJð)3°=Ñ(A×(HÑ(HÌÓ(MˆJ}Ñ %Ø+5Ð6FÑ+G×+NÑ+NÌsÓ+SˆJÐ'Ñ (Ø'1°,Ñ'?×'FÑ'FÄsÓ'KˆJ|Ñ $ð˜×+Ñ+Ó+ä%'§^¢^°J¸vÑ4FÓ%G
˜6Ñ"ð˜fÑ%×(Ñ(×+Ñ+Ñ3à)3°FÑ);×)>Ñ)>×)JÑ)JÈ5Ó)QJ˜vÑ&ð&0°Ñ%7×%:Ñ%:×%EÑ%EÀoÓ%V
˜6Ñ"àÐ øÜó    Ü Ð(¨¨Ð,Ô -؍Iûð    ús˜C;DÄ
D8ÄD3Ä-D8Ä3D8cóX•UbUR(a0$[U5USR5USR5USR    5USR 5S.USR5USR5USR    5USR 5S.USR5USR5USR    5USR 5S.S.nU$![ an[SU35 0sSnA$SnAff=f)uK
计算基本统计信息
:param df: æ•°æ®æ¡†
:return: ç»Ÿè®¡ä¿¡æ¯å­—å…¸
Nr)ÚmeanÚsumÚmaxÚminr    r
)Ú total_recordsrr    r
u计算统计信息失败: )r Úlenr#r$r%r&rr)rrÚstatsrs    rÚcalculate_statisticsÚ*DataProcessingService.calculate_statistics-s6€ð ‰:˜ŸŸØˆIð    ä!$ R£à˜}Ñ-×2Ñ2Ó4ؘmÑ,×0Ñ0Ó2ؘmÑ,×0Ñ0Ó2ؘmÑ,×0Ñ0Ó2ñ     ðÐ/Ñ0×5Ñ5Ó7ØÐ.Ñ/×3Ñ3Ó5ØÐ.Ñ/×3Ñ3Ó5ØÐ.Ñ/×3Ñ3Ó5ñ    #ð˜|Ñ,×1Ñ1Ó3ؘlÑ+×/Ñ/Ó1ؘlÑ+×/Ñ/Ó1ؘlÑ+×/Ñ/Ó1ñ    ñˆEð*ˆLøÜó    Ü Ð.¨q¨cÐ2Ô 3؍Iûð    ús˜C,DÄ
D)ÄD$ÄD)Ä$D)có`•UbUR(a[R"5$UR5n/nX2Rn[ [ U55HnUS:Xa XVXVS-:¬nO>U[ U5S-
:Xa XVXVS-
:¬nOXVXVS-
:¬=(a  XVXVS-:¬nU(a!U[ U5S-
:aXVXVS-:XaSnURU5 M  X4nU$![a-n[SU35 [R"5sSnA$SnAff=f)uŽ
识别指定列的局部极大值点
:param df: æ•°æ®æ¡†
:param column: è¦åˆ†æžçš„列名
:return: åŒ…含局部极大值点的新数据框
NréFu识别局部极大值失败: )
r rÚ    DataFramerÚvaluesÚranger(Úappendrr)    rrÚcolumnÚ    maxima_dfÚmaskr/ÚiÚis_maxrs             rÚidentify_local_maximaÚ+DataProcessingService.identify_local_maximaQs$€ð ‰:˜ŸŸÜ—<’<“>Ð !ð"    "àŸ™›    ˆIð
ˆDØÑ&×-Ñ-ˆFäœ3˜v›;Ö'à˜“6à#™Y¨&°1±©+Ñ5‘FØœ#˜f›+¨™/Ó)à#™Y¨&°1±©+Ñ5‘Fð$™Y¨&°1±©+Ñ5×R¸&¹)ÀvÐPQÉcÁ{Ñ:RFö˜a¤# f£+°¡/Ó1°f±iÀ6ÈAÉ#Á;Ó6NØ"Fà— ‘ ˜FÖ#ñ!(ð&"™ˆIàÐ øÜó    "Ü Ð1°!°Ð5Ô 6Ü—<’<“>Õ !ûð    "ús«C
C6Ã6
D-Ä"D(Ä"D-Ä(D-có–•UbUR(a[R"5$UR5nX2Rn/n/n[ U5HQupxU(dUR U5 MX„US:XaUR U5 M=UR U5 U/nMS  U(aUR U5 /n    UHn
U    R U
S5 M  URU    n X²R5n X»UU :Hn U $![a-n[SU35 [R"5sSnA$SnAff=f)u
识别"最后一个阶段最大值"
:param df: æ•°æ®æ¡†
:param column: è¦åˆ†æžçš„列名
:return: åŒ…含阶段最大值点的新数据框
Nréÿÿÿÿu识别阶段最大值失败: ) r rr.rr/Ú    enumerater1Úilocr%rr)rrr2Úphase_maxima_dfr/ÚphasesÚ current_phaser5ÚvalÚ phase_indicesÚphaseÚ phase_pointsÚ    max_valueÚ final_maximars               rÚidentify_phase_maximaÚ+DataProcessingService.identify_phase_maximas3€ð ‰:˜ŸŸÜ—<’<“>Ð !ð$    "à Ÿg™g›iˆOð%Ñ,×3Ñ3ˆF؈F؈Mä# FÖ+‘Þ$Ø!×(Ñ(¨Ö+à ]°1Ñ%5Ñ6Ó6Ø%×,Ñ,¨QÖ/àŸ ™  mÔ4Ø)*¨š ñ,öØ— ‘ ˜mÔ,ðˆMېØ×$Ñ$ U¨2¡YÖ/ñ ð+×/Ñ/° Ñ>ˆLØ$Ñ,×0Ñ0Ó2ˆIØ'°VÑ(<À    Ñ(IÑJˆLàÐ øÜó    "Ü Ð1°!°Ð5Ô 6Ü—<’<“>Õ !ûð    "ús«C%DÄ
EÄ"EÄ=EÅEcó¬•USUS-US-nUS:XagUSU- S-n[US5$![an[SU35 S    nAgS    nAff=f)
u[
计算单个数据点的合格率
:param row: æ•°æ®è¡Œ
:return: åˆæ ¼çŽ‡ï¼ˆç™¾åˆ†æ¯”ï¼‰
rr    r
rçédéu计算合格率失败: N)Úroundrr)rÚrowÚtotalÚ    pass_raters     rÚcalculate_pass_rateÚ)DataProcessingService.calculate_pass_rate¯su€ð     Ø˜ Ñ&¨Ð-=Ñ)>Ñ>ÀÀ\ÑARÑRˆEؘ‹zØØÐ-Ñ.°Ñ6¸#Ñ=ˆIܘ AÓ&Ð &øÜó    Ü Ð+¨A¨3Ð/Ô 0Üûð    ús‚1š1±
A»AÁAcó,•UbUR(agUSR5nUSR5nUSR5nX#-U-nUS:XagX5- S-n[US5$![an[    S    U35 SnAgSnAff=f)
uT
计算整体合格率
:param df: æ•°æ®æ¡†
:return: æ•´ä½“合格率(百分比)
NrIrr    r
rrJrKu计算整体合格率失败: )r r$rLrr)rrÚ total_underÚtotal_in_rangeÚ
total_overrNÚoverall_pass_raters        rÚcalculate_overall_pass_rateÚ1DataProcessingService.calculate_overall_pass_rate¿s§€ð ‰:˜ŸŸØð     Ø˜]Ñ+×/Ñ/Ó1ˆKØР0Ñ1×5Ñ5Ó7ˆNؘLÑ)×-Ñ-Ó/ˆJØÑ0°:Ñ=ˆEà˜‹zØà!/Ñ!7¸3Ñ >Ð ÜÐ*¨AÓ.Ð .øÜó    Ü Ð1°!°Ð5Ô 6Üûð    ús—AA1ÁA1Á1
BÁ;BÂBcóô•UbUR(a,[R"5[R"5SS.$URU5nUR    U5nUR(dUR UR SS9US'URU5nUUUS.$![aDn[SU35 [R"5[R"5SS.sSnA$SnAff=f)ui
分析极值点并计算相关统计
:param df: æ•°æ®æ¡†
:return: åŒ…含极值点分析结果的字典
NrI)Úextreme_pointsÚ phase_maximarVr-)ÚaxisrOu分析极值点失败: )
r rr.r7rFÚapplyrPrWrr)rrrZr[rVrs      rÚanalyze_extreme_pointsÚ,DataProcessingService.analyze_extreme_points×sê€ð ‰:˜ŸŸä"$§,¢,£.Ü "§ ¢ £Ø%(ñð ð     à!×7Ñ7¸Ó;ˆNð ×5Ñ5°bÓ9ˆLð"×'×'Ø.<×.BÑ.BÀ4×C[ÑC[ÐbcÐ.BÐ.d˜{Ñ+ð!%× @Ñ @ÀÓ DÐ ð#1Ø ,Ø%6ñð øô
ó    Ü Ð+¨A¨3Ð/Ô 0ä"$§,¢,£.Ü "§ ¢ £Ø%(ñõ ûð    úsÁA&B)Â)
C7Â39C2Ã,C7Ã2C7©N)r    ) Ú__name__Ú
__module__Ú __qualname__Ú__firstlineno__r r*r7rFrPrWr^Ú__static_attributes__r`órrrs)†ò&òP"ôH,"ô\."ò`ò õ0&rfr)ÚpandasrÚ    functoolsrrr`rfrÚ<module>risðÛÝ÷yòyrf