Saya perlu memilih nilai unik dari kolom pertama kerangka data dan menambahkannya sebagai kolom pertama ke kerangka data kedua (yang baru dibuat) -> lalu tambahkan kolom berikut yang terkait dengan masing-masing unik. Saya mendapat sesuatu seperti berikut

   First Field Name  Second Field Name
0                 1                 12
1                 2                 32
2                 3                  4
3                 2                 32
4                 3                 43
5                 4                 54
6                 3                 11
7                 2                 23
8                 1                 43

Saya membutuhkan yang berikut ini

uniques       Sum     min    max    mean    std     ave
1             55      12     ...     ...    ...     ...
2             87      23
3             58      4
4             54      54
0
user7074788 3 Juni 2019, 11:45

2 jawaban

Jawaban Terbaik

Anda dapat GroupBy.agg dengan daftar fungsi agregasi:

(df.groupby('First field')
   .agg(['min','max','mean','std', ('ave', 'mean')])
   .droplevel(0, axis=1))

                min  max       mean        std     ave
FirstFieldName                                           
1                12   43  27.500000  21.920310  27.500000
2                23   32  29.000000   5.196152  29.000000
3                 4   43  19.333333  20.792627  19.333333
4                54   54  54.000000        NaN  54.000000
2
yatu 3 Juni 2019, 10:03

Anda harus menggunakan fungsi groupby dengan kamus tempat Anda menginformasikan operasi apa yang ingin Anda lakukan dengan bidang Kedua:

df= pd.DataFrame({'First field' : [1,2,3,2,3,4,3,2,1],
                  'Second Field':[12,32,4,32,43,54,11,23,43]})
df.groupby('First field').agg({'Second Field' : ['sum', 'min', 'max', 'std', 'mean']})

Keluar :

                Second Field
                sum min max mean    std
First field                 
   1             55 12  43  27.500000   21.920310
   2             87 23  32  29.000000   5.196152
   3             58 4   43  19.333333   20.792627
   4             54 54  54  54.000000   NaN
1
marc_s 27 Oktober 2019, 21:48