by Anonymous » 03 Apr 2025, 04:43
Ich mache Berechnungen in der Datenbank und möchte die Ergebnisse gegen Pandas 'Berechnungen validieren. Die Endverwendung ist eine statistische Berechnung, also prozentuell_cont () die postgres -Funktion, die ich verwende.
Code: Select all
SELECT percentile_cont(0.25) WITHIN GROUP (order by obs1) as q1
, percentile_cont(0.5) WITHIN GROUP (order by obs1) as med
, percentile_cont(0.75) WITHIN GROUP (order by obs1) as q3
FROM my_table;
Es gibt Q1 = zurück
, med =
und Q3 =
als Ergebnis. Ich habe gesucht und der Konsens online ist das Interpolation = 'linear' Argument in pandas führt dazu, dass die Berechnungsmethode der von Perzentile_Cont () .
übereinstimmt
Code: Select all
dataframe = pandas.read_sql(sql='SELECT obs1 FROM my_table', con='my_connection_info')
dataframe = dataframe.sort_values(by='obs1')
percentiles = dataframe.quantile(q=[0.25, 0.5, 0.75],
axis=0,
numeric_only=False,
interpolation='linear',
method='single')
< /code>
Die Ergebnisse sind: < /p>
obs1
0.25 73.992
0.50 74.000
0.75 74.006
< /code>
Ich bin verwirrt, weil nur das 75. Perzentil ausgeschaltet ist. Q1
und Q2 sehen wie ein Rundungsproblem aus, aber Q3 ist einfach ausgeschaltet. Postgres erhält das Ergebnis q3 , dass dies der Fall ist, oder wie die Ergebnisse von postgres und pandas zu Testzwecken übereinstimmen.
Was soll ich als nächstes versuchen?
Code: Select all
obs1
24 73.982
12 73.983
18 73.984
7 73.985
2 73.988
20 73.988
4 73.992
10 73.994
16 73.994
1 73.995
6 73.995
9 73.998
15 74.000
19 74.000
3 74.002
11 74.004
21 74.004
13 74.006
17 74.006
8 74.008
5 74.009
22 74.010
14 74.012
23 74.015
0 74.030
Ich mache Berechnungen in der Datenbank und möchte die Ergebnisse gegen Pandas 'Berechnungen validieren. Die Endverwendung ist eine statistische Berechnung, also prozentuell_cont () die postgres -Funktion, die ich verwende.[code]SELECT percentile_cont(0.25) WITHIN GROUP (order by obs1) as q1
, percentile_cont(0.5) WITHIN GROUP (order by obs1) as med
, percentile_cont(0.75) WITHIN GROUP (order by obs1) as q3
FROM my_table;
[/code]
Es gibt Q1 = zurück[code]73.99[/code], med =[code]74.0[/code] und Q3 =[code]74.0085[/code] als Ergebnis. Ich habe gesucht und der Konsens online ist das Interpolation = 'linear' Argument in pandas führt dazu, dass die Berechnungsmethode der von Perzentile_Cont () .
übereinstimmt[code]dataframe = pandas.read_sql(sql='SELECT obs1 FROM my_table', con='my_connection_info')
dataframe = dataframe.sort_values(by='obs1')
percentiles = dataframe.quantile(q=[0.25, 0.5, 0.75],
axis=0,
numeric_only=False,
interpolation='linear',
method='single')
< /code>
Die Ergebnisse sind: < /p>
obs1
0.25 73.992
0.50 74.000
0.75 74.006
< /code>
Ich bin verwirrt, weil nur das 75. Perzentil ausgeschaltet ist. Q1 [/code] und Q2 sehen wie ein Rundungsproblem aus, aber Q3 ist einfach ausgeschaltet. Postgres erhält das Ergebnis q3 , dass dies der Fall ist, oder wie die Ergebnisse von postgres und pandas zu Testzwecken übereinstimmen.
Was soll ich als nächstes versuchen?[code] obs1
24 73.982
12 73.983
18 73.984
7 73.985
2 73.988
20 73.988
4 73.992
10 73.994
16 73.994
1 73.995
6 73.995
9 73.998
15 74.000
19 74.000
3 74.002
11 74.004
21 74.004
13 74.006
17 74.006
8 74.008
5 74.009
22 74.010
14 74.012
23 74.015
0 74.030
[/code]