Saat ini, saya memiliki data untuk 10.000 pengguna dengan output mereka untuk kolom yang berbeda. Saya mendapatkan mean dan standar deviasi mereka. Untuk sampel ini, saya menunjukkan 12 kategori tetapi dalam implementasi nyata, kami memiliki hampir 150 hingga 200 kategori

Df:

Name    mean_sd Value
cat1    mean    0.444880952
cat1    sd      0.164780194
cat2    mean    0.061
cat2    sd      0.138918315
cat3    mean    0.405407692
cat3    sd      0.197562182
cat4    mean    0.406059524
cat4    sd      0.127014912
cat5    mean    0.504
cat5    sd      0.414917047
cat6    mean    0.4865
cat6    sd      0.409555229
cat7    mean    0.436929487
cat7    sd      0.178101453
cat8    mean    0.36275
cat8    sd      0.292507261
cat9    mean    0.492371795
cat9    sd      0.182507498
cat10   mean    -1.20E-15
cat10   sd      0.560579346
cat11   mean    5.78E-16
cat11   sd      0.502121582
cat12   mean    100
cat12   sd      10.33676575

Jika saya ingin memperbarui untuk 1000 pengguna baru saat ini saya menambahkannya ke data lama dan saya mengkompilasi dengan seluruh database lagi sehingga saya dapat memperoleh mean dan standar deviasi baru.

Kode yang saya gunakan untuk perhitungan adalah seperti di bawah ini:

    cat1_mean = cat1['response'].mean(axis=0)
    cat1_sd = cat1['response'].std(axis=0) 

Sekarang pertanyaan saya adalah, apakah ada cara yang lebih baik untuk melakukan proses ini karena kami mengharapkan untuk mendapatkan 1000.000+ pengguna baru segera. Data yang kami dapatkan juga bukan proses satu kali, melainkan peningkatan data secara bertahap. Setiap saran sangat dihargai.

Saya tidak tahu apakah Stackoverflow adalah tempat yang tepat untuk memposting pertanyaan ini, Jika tidak, sarankan kepada saya forum yang tepat, saya akan memposting pertanyaan saya di sana.

0
Toros91 20 November 2020, 06:55

1 menjawab

Jawaban Terbaik

Saya menemukan jawaban saya:

N_old = jumlah item dalam kerangka data lama

N_new = jumlah item dalam kerangka data baru

Sd_old = simpangan baku kerangka data lama old

Sd_new = simpangan baku kerangka data baru new

on_mean_df['new_sd'] = np.sqrt(((on_mean_df['n_new']**2 * on_mean_df['sd_new'].astype(float)**2) + (on_mean_df['n_old']**2 * on_mean_df['sd_old'].astype(float)**2)) / (on_mean_df['n_new'] + on_mean_df['n_old'] ** 2))

Ini memberi kita standar deviasi baru dengan menyisir data lama.

0
Toros91 23 November 2020, 09:01