Pandas adalah alat khusus yang memungkinkan kita melakukan manipulasi data yang rumit secara efektif dan efisien. Di dalam panda, kami kebanyakan berurusan dengan kumpulan data dalam bentuk DataFrame. DataFrames adalah struktur data 2 dimensi dalam panda. DataFrames terdiri dari baris, kolom, dan data Show
Filter DataFrame panda secara dinamisJadi, kami membuat DataFrame dengan banyak kolom dan kemudian kami perlu memfilter df menggunakan ambang batas untuk tiga kolom Kita dapat melakukan ini hanya dengan menerapkan semua kondisi dan jika data memenuhi kondisi tersebut, maka akan menjadi hasil akhir. Namun, kita perlu melakukan ini di dalam fungsi di mana nama ambang dan kolom diberikan dalam bentuk kamus Untuk tujuan ini, kami akan menggunakan cara cepat dan mudah untuk melakukan ini. Kami akan membuat kueri dinamis menggunakan pemahaman daftar dan metode penggabungan string Terakhir, kami memiliki metode yang disebut panda. Bingkai Data. query() di dalamnya kita dapat meneruskan kueri apa pun yang dipahami dan secara dinamis akan menghitung semua hasil Ini adalah repositori untuk contoh singkat dan manis serta tautan untuk resep panda yang bermanfaat. Kami mendorong pengguna untuk menambahkan dokumentasi ini Menambahkan tautan menarik dan/atau contoh sebaris ke bagian ini adalah Permintaan Tarik Pertama yang bagus Contoh in-line yang disederhanakan, padat, ramah pengguna baru, telah dimasukkan jika memungkinkan untuk menambah tautan Stack-Overflow dan GitHub. Banyak tautan berisi informasi yang diperluas, di atas yang ditawarkan contoh sebaris Pandas (pd) dan Numpy (np) adalah satu-satunya dua modul impor yang disingkat. Sisanya disimpan secara eksplisit diimpor untuk pengguna baru Contoh-contoh ini ditulis untuk Python 3. Perubahan kecil mungkin diperlukan untuk versi python sebelumnya IdiomIni adalah beberapa panda yang rapi In [19]: df = pd.DataFrame({'AAA': [4, 5, 6, 7], ....: 'BBB': [10, 20, 30, 40], ....: 'CCC': [100, 50, -30, -50]}) ....: In [20]: df Out[20]: AAA BBB CCC 0 4 10 100 1 5 20 50 2 6 30 -30 3 7 40 -504 if-then/if-then-else pada satu kolom, dan penugasan ke satu atau beberapa kolom lainnya In [1]: df = pd.DataFrame({'AAA': [4, 5, 6, 7], ...: 'BBB': [10, 20, 30, 40], ...: 'CCC': [100, 50, -30, -50]}) ...: In [2]: df Out[2]: AAA BBB CCC 0 4 10 100 1 5 20 50 2 6 30 -30 3 7 40 -50_ jika kemudian…Sebuah jika-maka pada satu kolom In [3]: df.loc[df.AAA >= 5, 'BBB'] = -1 In [4]: df Out[4]: AAA BBB CCC 0 4 10 100 1 5 -1 50 2 6 -1 -30 3 7 -1 -50 Jika-maka dengan penugasan ke 2 kolom In [5]: df.loc[df.AAA >= 5, ['BBB', 'CCC']] = 555 In [6]: df Out[6]: AAA BBB CCC 0 4 10 100 1 5 555 555 2 6 555 555 3 7 555 555 Tambahkan baris lain dengan logika berbeda, untuk melakukan -else In [7]: df.loc[df.AAA < 5, ['BBB', 'CCC']] = 2000 In [8]: df Out[8]: AAA BBB CCC 0 4 2000 2000 1 5 555 555 2 6 555 555 3 7 555 555_ Atau gunakan panda di mana setelah Anda menyiapkan topeng In [9]: df_mask = pd.DataFrame({'AAA': [True] * 4, ...: 'BBB': [False] * 4, ...: 'CCC': [True, False] * 2}) ...: In [10]: df.where(df_mask, -1000) Out[10]: AAA BBB CCC 0 4 -1000 2000 1 5 -1000 -1000 2 6 -1000 555 3 7 -1000 -1000 if-then-else menggunakan numpy's where() In [11]: df = pd.DataFrame({'AAA': [4, 5, 6, 7], ....: 'BBB': [10, 20, 30, 40], ....: 'CCC': [100, 50, -30, -50]}) ....: In [12]: df Out[12]: AAA BBB CCC 0 4 10 100 1 5 20 50 2 6 30 -30 3 7 40 -50 In [13]: df['logic'] = np.where(df['AAA'] > 5, 'high', 'low') In [14]: df Out[14]: AAA BBB CCC logic 0 4 10 100 low 1 5 20 50 low 2 6 30 -30 high 3 7 40 -50 high_ PemisahanPisahkan bingkai dengan kriteria boolean In [15]: df = pd.DataFrame({'AAA': [4, 5, 6, 7], ....: 'BBB': [10, 20, 30, 40], ....: 'CCC': [100, 50, -30, -50]}) ....: In [16]: df Out[16]: AAA BBB CCC 0 4 10 100 1 5 20 50 2 6 30 -30 3 7 40 -50 In [17]: df[df.AAA <= 5] Out[17]: AAA BBB CCC 0 4 10 100 1 5 20 50 In [18]: df[df.AAA > 5] Out[18]: AAA BBB CCC 2 6 30 -30 3 7 40 -50 Kriteria BangunanPilih dengan kriteria multi-kolom In [19]: df = pd.DataFrame({'AAA': [4, 5, 6, 7], ....: 'BBB': [10, 20, 30, 40], ....: 'CCC': [100, 50, -30, -50]}) ....: In [20]: df Out[20]: AAA BBB CCC 0 4 10 100 1 5 20 50 2 6 30 -30 3 7 40 -50 …dan (tanpa penugasan mengembalikan Seri) In [21]: df.loc[(df['BBB'] < 25) & (df['CCC'] >= -40), 'AAA'] Out[21]: 0 4 1 5 Name: AAA, dtype: int64_ …atau (tanpa penugasan mengembalikan Seri) In [22]: df.loc[(df['BBB'] > 25) | (df['CCC'] >= -40), 'AAA'] Out[22]: 0 4 1 5 2 6 3 7 Name: AAA, dtype: int64 …atau (dengan penugasan memodifikasi DataFrame. ) In [3]: df.loc[df.AAA >= 5, 'BBB'] = -1 In [4]: df Out[4]: AAA BBB CCC 0 4 10 100 1 5 -1 50 2 6 -1 -30 3 7 -1 -500 Pilih baris dengan data yang paling dekat dengan nilai tertentu menggunakan argsort In [3]: df.loc[df.AAA >= 5, 'BBB'] = -1 In [4]: df Out[4]: AAA BBB CCC 0 4 10 100 1 5 -1 50 2 6 -1 -30 3 7 -1 -501 Secara dinamis mengurangi daftar kriteria menggunakan operator biner In [3]: df.loc[df.AAA >= 5, 'BBB'] = -1 In [4]: df Out[4]: AAA BBB CCC 0 4 10 100 1 5 -1 50 2 6 -1 -30 3 7 -1 -502 Seseorang dapat membuat kode keras In [3]: df.loc[df.AAA >= 5, 'BBB'] = -1 In [4]: df Out[4]: AAA BBB CCC 0 4 10 100 1 5 -1 50 2 6 -1 -30 3 7 -1 -50_3 …Atau dapat dilakukan dengan daftar kriteria yang dibangun secara dinamis In [3]: df.loc[df.AAA >= 5, 'BBB'] = -1 In [4]: df Out[4]: AAA BBB CCC 0 4 10 100 1 5 -1 50 2 6 -1 -30 3 7 -1 -50_4 PilihanBingkai DataDokumen Menggunakan label baris dan persyaratan nilai In [3]: df.loc[df.AAA >= 5, 'BBB'] = -1 In [4]: df Out[4]: AAA BBB CCC 0 4 10 100 1 5 -1 50 2 6 -1 -30 3 7 -1 -505 Gunakan loc untuk pemotongan berorientasi label dan pemotongan posisi iloc In [3]: df.loc[df.AAA >= 5, 'BBB'] = -1 In [4]: df Out[4]: AAA BBB CCC 0 4 10 100 1 5 -1 50 2 6 -1 -30 3 7 -1 -506 Ada 2 metode pemotongan eksplisit, dengan kasus umum ketiga
In [3]: df.loc[df.AAA >= 5, 'BBB'] = -1 In [4]: df Out[4]: AAA BBB CCC 0 4 10 100 1 5 -1 50 2 6 -1 -30 3 7 -1 -507 Ambiguitas muncul ketika indeks terdiri dari bilangan bulat dengan permulaan bukan nol atau kenaikan non-unit In [3]: df.loc[df.AAA >= 5, 'BBB'] = -1 In [4]: df Out[4]: AAA BBB CCC 0 4 10 100 1 5 -1 50 2 6 -1 -30 3 7 -1 -50_8 Menggunakan operator invers (~) untuk mengambil komplemen dari sebuah mask In [3]: df.loc[df.AAA >= 5, 'BBB'] = -1 In [4]: df Out[4]: AAA BBB CCC 0 4 10 100 1 5 -1 50 2 6 -1 -30 3 7 -1 -50_9 PanelPerpanjang bingkai panel dengan mentranspos, menambahkan dimensi baru, dan mentranspos kembali ke dimensi aslinya In [5]: df.loc[df.AAA >= 5, ['BBB', 'CCC']] = 555 In [6]: df Out[6]: AAA BBB CCC 0 4 10 100 1 5 555 555 2 6 555 555 3 7 555 5550 Tutupi panel dengan menggunakan np. di mana dan kemudian merekonstruksi panel dengan nilai-nilai baru yang disamarkan Kolom BaruMembuat kolom baru secara efisien dan dinamis menggunakan applymap In [5]: df.loc[df.AAA >= 5, ['BBB', 'CCC']] = 555 In [6]: df Out[6]: AAA BBB CCC 0 4 10 100 1 5 555 555 2 6 555 555 3 7 555 5551 Pertahankan kolom lain saat menggunakan min() dengan groupby In [5]: df.loc[df.AAA >= 5, ['BBB', 'CCC']] = 555 In [6]: df Out[6]: AAA BBB CCC 0 4 10 100 1 5 555 555 2 6 555 555 3 7 555 5552 Metode 1. idxmin() untuk mendapatkan indeks minimum In [5]: df.loc[df.AAA >= 5, ['BBB', 'CCC']] = 555 In [6]: df Out[6]: AAA BBB CCC 0 4 10 100 1 5 555 555 2 6 555 555 3 7 555 555_3 Metode 2. urutkan lalu ambil masing-masing terlebih dahulu In [5]: df.loc[df.AAA >= 5, ['BBB', 'CCC']] = 555 In [6]: df Out[6]: AAA BBB CCC 0 4 10 100 1 5 555 555 2 6 555 555 3 7 555 555_4 Perhatikan hasil yang sama, kecuali indeks MultiIndexingDokumen Membuat MultiIndex dari bingkai berlabel In [5]: df.loc[df.AAA >= 5, ['BBB', 'CCC']] = 555 In [6]: df Out[6]: AAA BBB CCC 0 4 10 100 1 5 555 555 2 6 555 555 3 7 555 5555 HitungIn [5]: df.loc[df.AAA >= 5, ['BBB', 'CCC']] = 555 In [6]: df Out[6]: AAA BBB CCC 0 4 10 100 1 5 555 555 2 6 555 555 3 7 555 5556 MengirisMengiris MultiIndex dengan xs In [5]: df.loc[df.AAA >= 5, ['BBB', 'CCC']] = 555 In [6]: df Out[6]: AAA BBB CCC 0 4 10 100 1 5 555 555 2 6 555 555 3 7 555 555_7 Untuk mengambil penampang level 1 dan sumbu 1 indeks In [5]: df.loc[df.AAA >= 5, ['BBB', 'CCC']] = 555 In [6]: df Out[6]: AAA BBB CCC 0 4 10 100 1 5 555 555 2 6 555 555 3 7 555 5558 …dan sekarang level ke-2 dari sumbu ke-1 In [5]: df.loc[df.AAA >= 5, ['BBB', 'CCC']] = 555 In [6]: df Out[6]: AAA BBB CCC 0 4 10 100 1 5 555 555 2 6 555 555 3 7 555 555_9 Mengiris MultiIndex dengan xs, metode #2 In [7]: df.loc[df.AAA < 5, ['BBB', 'CCC']] = 2000 In [8]: df Out[8]: AAA BBB CCC 0 4 2000 2000 1 5 555 555 2 6 555 555 3 7 555 555_0 Menyetel porsi MultiIndex dengan xs PenyortiranUrutkan berdasarkan kolom tertentu atau daftar kolom yang diurutkan, dengan MultiIndex In [7]: df.loc[df.AAA < 5, ['BBB', 'CCC']] = 2000 In [8]: df Out[8]: AAA BBB CCC 0 4 2000 2000 1 5 555 555 2 6 555 555 3 7 555 555_1 Seleksi Parsial, kebutuhan akan penyortiran; LevelMenambahkan level ke multiindex Meratakan kolom hierarkis Data HilangDokumen Isi maju deret waktu terbalik In [7]: df.loc[df.AAA < 5, ['BBB', 'CCC']] = 2000 In [8]: df Out[8]: AAA BBB CCC 0 4 2000 2000 1 5 555 555 2 6 555 555 3 7 555 555_2 cumsum reset pada nilai NaN MenggantiMenggunakan ganti dengan backrefs PengelompokanDokumen Pengelompokan dasar dengan apply Tidak seperti agg, callable apply diberikan sub-DataFrame yang memberi Anda akses ke semua kolom In [7]: df.loc[df.AAA < 5, ['BBB', 'CCC']] = 2000 In [8]: df Out[8]: AAA BBB CCC 0 4 2000 2000 1 5 555 555 2 6 555 555 3 7 555 555_3 Menggunakan get_group In [7]: df.loc[df.AAA < 5, ['BBB', 'CCC']] = 2000 In [8]: df Out[8]: AAA BBB CCC 0 4 2000 2000 1 5 555 555 2 6 555 555 3 7 555 555_4 Terapkan ke berbagai item dalam grup In [7]: df.loc[df.AAA < 5, ['BBB', 'CCC']] = 2000 In [8]: df Out[8]: AAA BBB CCC 0 4 2000 2000 1 5 555 555 2 6 555 555 3 7 555 555_5 Memperluas Terapkan In [7]: df.loc[df.AAA < 5, ['BBB', 'CCC']] = 2000 In [8]: df Out[8]: AAA BBB CCC 0 4 2000 2000 1 5 555 555 2 6 555 555 3 7 555 555_6 Mengganti beberapa nilai dengan rata-rata kelompok lainnya In [7]: df.loc[df.AAA < 5, ['BBB', 'CCC']] = 2000 In [8]: df Out[8]: AAA BBB CCC 0 4 2000 2000 1 5 555 555 2 6 555 555 3 7 555 555_7 Urutkan grup berdasarkan data gabungan In [7]: df.loc[df.AAA < 5, ['BBB', 'CCC']] = 2000 In [8]: df Out[8]: AAA BBB CCC 0 4 2000 2000 1 5 555 555 2 6 555 555 3 7 555 555_8 Buat beberapa kolom gabungan In [7]: df.loc[df.AAA < 5, ['BBB', 'CCC']] = 2000 In [8]: df Out[8]: AAA BBB CCC 0 4 2000 2000 1 5 555 555 2 6 555 555 3 7 555 555_9 Buat kolom jumlah nilai dan tetapkan kembali ke DataFrame In [9]: df_mask = pd.DataFrame({'AAA': [True] * 4, ...: 'BBB': [False] * 4, ...: 'CCC': [True, False] * 2}) ...: In [10]: df.where(df_mask, -1000) Out[10]: AAA BBB CCC 0 4 -1000 2000 1 5 -1000 -1000 2 6 -1000 555 3 7 -1000 -10000 Geser grup nilai dalam kolom berdasarkan indeks In [9]: df_mask = pd.DataFrame({'AAA': [True] * 4, ...: 'BBB': [False] * 4, ...: 'CCC': [True, False] * 2}) ...: In [10]: df.where(df_mask, -1000) Out[10]: AAA BBB CCC 0 4 -1000 2000 1 5 -1000 -1000 2 6 -1000 555 3 7 -1000 -10001 Pilih baris dengan nilai maksimum dari setiap grup In [9]: df_mask = pd.DataFrame({'AAA': [True] * 4, ...: 'BBB': [False] * 4, ...: 'CCC': [True, False] * 2}) ...: In [10]: df.where(df_mask, -1000) Out[10]: AAA BBB CCC 0 4 -1000 2000 1 5 -1000 -1000 2 6 -1000 555 3 7 -1000 -10002 Pengelompokan seperti itertools Python. groupby In [9]: df_mask = pd.DataFrame({'AAA': [True] * 4, ...: 'BBB': [False] * 4, ...: 'CCC': [True, False] * 2}) ...: In [10]: df.where(df_mask, -1000) Out[10]: AAA BBB CCC 0 4 -1000 2000 1 5 -1000 -1000 2 6 -1000 555 3 7 -1000 -1000_3 Memperluas DataKeselarasan dan terkini Jendela Rolling Computation berdasarkan nilai, bukan jumlah Rata-Rata Bergulir berdasarkan Interval Waktu PemisahanBuat daftar kerangka data, pisahkan menggunakan penggambaran berdasarkan logika yang disertakan dalam baris In [9]: df_mask = pd.DataFrame({'AAA': [True] * 4, ...: 'BBB': [False] * 4, ...: 'CCC': [True, False] * 2}) ...: In [10]: df.where(df_mask, -1000) Out[10]: AAA BBB CCC 0 4 -1000 2000 1 5 -1000 -1000 2 6 -1000 555 3 7 -1000 -1000_4 PorosDokumen In [9]: df_mask = pd.DataFrame({'AAA': [True] * 4, ...: 'BBB': [False] * 4, ...: 'CCC': [True, False] * 2}) ...: In [10]: df.where(df_mask, -1000) Out[10]: AAA BBB CCC 0 4 -1000 2000 1 5 -1000 -1000 2 6 -1000 555 3 7 -1000 -10005 Tabel frekuensi seperti plyr di R In [9]: df_mask = pd.DataFrame({'AAA': [True] * 4, ...: 'BBB': [False] * 4, ...: 'CCC': [True, False] * 2}) ...: In [10]: df.where(df_mask, -1000) Out[10]: AAA BBB CCC 0 4 -1000 2000 1 5 -1000 -1000 2 6 -1000 555 3 7 -1000 -1000_6 Plot panda DataFrame dengan data tahun ke tahun Untuk membuat tabulasi silang tahun dan bulan In [9]: df_mask = pd.DataFrame({'AAA': [True] * 4, ...: 'BBB': [False] * 4, ...: 'CCC': [True, False] * 2}) ...: In [10]: df.where(df_mask, -1000) Out[10]: AAA BBB CCC 0 4 -1000 2000 1 5 -1000 -1000 2 6 -1000 555 3 7 -1000 -1000_7 BerlakuRolling Apply to Organize - Mengubah daftar yang disematkan menjadi bingkai MultiIndex In [9]: df_mask = pd.DataFrame({'AAA': [True] * 4, ...: 'BBB': [False] * 4, ...: 'CCC': [True, False] * 2}) ...: In [10]: df.where(df_mask, -1000) Out[10]: AAA BBB CCC 0 4 -1000 2000 1 5 -1000 -1000 2 6 -1000 555 3 7 -1000 -1000_8 Rolling Terapkan dengan DataFrame mengembalikan Seri Bergulir Terapkan ke beberapa kolom tempat fungsi menghitung Seri sebelum Skalar dari Seri dikembalikan In [9]: df_mask = pd.DataFrame({'AAA': [True] * 4, ...: 'BBB': [False] * 4, ...: 'CCC': [True, False] * 2}) ...: In [10]: df.where(df_mask, -1000) Out[10]: AAA BBB CCC 0 4 -1000 2000 1 5 -1000 -1000 2 6 -1000 555 3 7 -1000 -1000_9 Bergulir Terapkan ke beberapa kolom di mana fungsi mengembalikan Skalar (Harga Rata-Rata Tertimbang Volume) In [11]: df = pd.DataFrame({'AAA': [4, 5, 6, 7], ....: 'BBB': [10, 20, 30, 40], ....: 'CCC': [100, 50, -30, -50]}) ....: In [12]: df Out[12]: AAA BBB CCC 0 4 10 100 1 5 20 50 2 6 30 -30 3 7 40 -50 In [13]: df['logic'] = np.where(df['AAA'] > 5, 'high', 'low') In [14]: df Out[14]: AAA BBB CCC logic 0 4 10 100 low 1 5 20 50 low 2 6 30 -30 high 3 7 40 -50 high_0 Deret waktuAntara waktu Menggunakan pengindeks antara waktu Pencarian Vektor Agregasi dan merencanakan deret waktu Ubah matriks dengan jam dalam kolom dan hari dalam baris menjadi urutan baris kontinu dalam bentuk deret waktu. Bagaimana cara mengatur ulang DataFrame panda Python? Berurusan dengan duplikat saat mengindeks ulang deret waktu ke frekuensi yang ditentukan Hitung hari pertama setiap bulan untuk setiap entri dalam DatetimeIndex In [11]: df = pd.DataFrame({'AAA': [4, 5, 6, 7], ....: 'BBB': [10, 20, 30, 40], ....: 'CCC': [100, 50, -30, -50]}) ....: In [12]: df Out[12]: AAA BBB CCC 0 4 10 100 1 5 20 50 2 6 30 -30 3 7 40 -50 In [13]: df['logic'] = np.where(df['AAA'] > 5, 'high', 'low') In [14]: df Out[14]: AAA BBB CCC logic 0 4 10 100 low 1 5 20 50 low 2 6 30 -30 high 3 7 40 -50 high_1 Pengambilan sampel ulangDokumen Menggunakan Grouper alih-alih TimeGrouper untuk pengelompokan nilai waktu Pengelompokan waktu dengan beberapa nilai yang hilang Pengelompokan menggunakan MultiIndex Menggunakan TimeGrouper dan pengelompokan lain untuk membuat subgrup, lalu terapkan fungsi khusus Pengambilan sampel ulang dengan periode khusus Contoh ulang bingkai harian tanpa menambahkan hari baru Contoh ulang data menit Contoh ulang dengan groupby MenggabungkanDokumen. Dokumen Tambahkan dua kerangka data dengan indeks yang tumpang tindih (tiru R rbind) In [11]: df = pd.DataFrame({'AAA': [4, 5, 6, 7], ....: 'BBB': [10, 20, 30, 40], ....: 'CCC': [100, 50, -30, -50]}) ....: In [12]: df Out[12]: AAA BBB CCC 0 4 10 100 1 5 20 50 2 6 30 -30 3 7 40 -50 In [13]: df['logic'] = np.where(df['AAA'] > 5, 'high', 'low') In [14]: df Out[14]: AAA BBB CCC logic 0 4 10 100 low 1 5 20 50 low 2 6 30 -30 high 3 7 40 -50 high_2 Tergantung pada konstruksi df, In [19]: df = pd.DataFrame({'AAA': [4, 5, 6, 7], ....: 'BBB': [10, 20, 30, 40], ....: 'CCC': [100, 50, -30, -50]}) ....: In [20]: df Out[20]: AAA BBB CCC 0 4 10 100 1 5 20 50 2 6 30 -30 3 7 40 -505 mungkin diperlukan In [11]: df = pd.DataFrame({'AAA': [4, 5, 6, 7], ....: 'BBB': [10, 20, 30, 40], ....: 'CCC': [100, 50, -30, -50]}) ....: In [12]: df Out[12]: AAA BBB CCC 0 4 10 100 1 5 20 50 2 6 30 -30 3 7 40 -50 In [13]: df['logic'] = np.where(df['AAA'] > 5, 'high', 'low') In [14]: df Out[14]: AAA BBB CCC logic 0 4 10 100 low 1 5 20 50 low 2 6 30 -30 high 3 7 40 -50 high_3 Gabung Sendiri dari DataFrame In [11]: df = pd.DataFrame({'AAA': [4, 5, 6, 7], ....: 'BBB': [10, 20, 30, 40], ....: 'CCC': [100, 50, -30, -50]}) ....: In [12]: df Out[12]: AAA BBB CCC 0 4 10 100 1 5 20 50 2 6 30 -30 3 7 40 -50 In [13]: df['logic'] = np.where(df['AAA'] > 5, 'high', 'low') In [14]: df Out[14]: AAA BBB CCC logic 0 4 10 100 low 1 5 20 50 low 2 6 30 -30 high 3 7 40 -50 high_4 Cara mengatur indeks dan bergabung Bergabung dengan kriteria berdasarkan nilai-nilai Menggunakan searchsorted untuk menggabungkan berdasarkan nilai di dalam rentang MerencanakanDokumen Jadikan Matplotlib terlihat seperti R Mengatur label mayor dan minor sumbu x Merencanakan banyak bagan dalam notebook ipython Membuat plot multi-garis Merencanakan peta panas Anotasi plot deret waktu Anotasi plot deret waktu #2 Hasilkan plot Tersemat dalam file excel menggunakan Pandas, Vincent dan xlsxwriter Boxplot untuk setiap kuartil dari variabel stratifikasi In [11]: df = pd.DataFrame({'AAA': [4, 5, 6, 7], ....: 'BBB': [10, 20, 30, 40], ....: 'CCC': [100, 50, -30, -50]}) ....: In [12]: df Out[12]: AAA BBB CCC 0 4 10 100 1 5 20 50 2 6 30 -30 3 7 40 -50 In [13]: df['logic'] = np.where(df['AAA'] > 5, 'high', 'low') In [14]: df Out[14]: AAA BBB CCC logic 0 4 10 100 low 1 5 20 50 low 2 6 30 -30 high 3 7 40 -50 high_5 Data Masuk/KeluarPerbandingan kinerja SQL vs HDF5 CSVDokumen read_csv beraksi menambahkan ke csv Hanya membaca baris tertentu dari potongan demi potongan csv Membaca beberapa baris pertama dari sebuah bingkai Membaca file yang dikompresi tetapi tidak oleh In [19]: df = pd.DataFrame({'AAA': [4, 5, 6, 7], ....: 'BBB': [10, 20, 30, 40], ....: 'CCC': [100, 50, -30, -50]}) ....: In [20]: df Out[20]: AAA BBB CCC 0 4 10 100 1 5 20 50 2 6 30 -30 3 7 40 -506 (format terkompresi asli yang dipahami In [19]: df = pd.DataFrame({'AAA': [4, 5, 6, 7], ....: 'BBB': [10, 20, 30, 40], ....: 'CCC': [100, 50, -30, -50]}) ....: In [20]: df Out[20]: AAA BBB CCC 0 4 10 100 1 5 20 50 2 6 30 -30 3 7 40 -507). Contoh ini menunjukkan file In [19]: df = pd.DataFrame({'AAA': [4, 5, 6, 7], ....: 'BBB': [10, 20, 30, 40], ....: 'CCC': [100, 50, -30, -50]}) ....: In [20]: df Out[20]: AAA BBB CCC 0 4 10 100 1 5 20 50 2 6 30 -30 3 7 40 -50_8, tetapi merupakan aplikasi umum untuk membuka file dalam pengelola konteks dan menggunakan pegangan itu untuk membaca. Lihat disini Menyimpulkan dtypes dari file Berurusan dengan jalur yang buruk Berurusan dengan jalur yang buruk II Membaca CSV dengan stempel waktu Unix dan mengonversi ke zona waktu lokal Tulis CSV indeks multi-baris tanpa menulis duplikat Membaca banyak file untuk membuat satu DataFrameCara terbaik untuk menggabungkan beberapa file ke dalam satu DataFrame adalah dengan membaca frame individual satu per satu, memasukkan semua frame individual ke dalam daftar, lalu menggabungkan frame dalam daftar menggunakan In [19]: df = pd.DataFrame({'AAA': [4, 5, 6, 7], ....: 'BBB': [10, 20, 30, 40], ....: 'CCC': [100, 50, -30, -50]}) ....: In [20]: df Out[20]: AAA BBB CCC 0 4 10 100 1 5 20 50 2 6 30 -30 3 7 40 -509 In [11]: df = pd.DataFrame({'AAA': [4, 5, 6, 7], ....: 'BBB': [10, 20, 30, 40], ....: 'CCC': [100, 50, -30, -50]}) ....: In [12]: df Out[12]: AAA BBB CCC 0 4 10 100 1 5 20 50 2 6 30 -30 3 7 40 -50 In [13]: df['logic'] = np.where(df['AAA'] > 5, 'high', 'low') In [14]: df Out[14]: AAA BBB CCC logic 0 4 10 100 low 1 5 20 50 low 2 6 30 -30 high 3 7 40 -50 high_6 Anda dapat menggunakan pendekatan yang sama untuk membaca semua file yang cocok dengan suatu pola. Berikut adalah contoh menggunakan In [21]: df.loc[(df['BBB'] < 25) & (df['CCC'] >= -40), 'AAA'] Out[21]: 0 4 1 5 Name: AAA, dtype: int64_0 In [11]: df = pd.DataFrame({'AAA': [4, 5, 6, 7], ....: 'BBB': [10, 20, 30, 40], ....: 'CCC': [100, 50, -30, -50]}) ....: In [12]: df Out[12]: AAA BBB CCC 0 4 10 100 1 5 20 50 2 6 30 -30 3 7 40 -50 In [13]: df['logic'] = np.where(df['AAA'] > 5, 'high', 'low') In [14]: df Out[14]: AAA BBB CCC logic 0 4 10 100 low 1 5 20 50 low 2 6 30 -30 high 3 7 40 -50 high_7 Terakhir, strategi ini akan berfungsi dengan fungsi In [21]: df.loc[(df['BBB'] < 25) & (df['CCC'] >= -40), 'AAA'] Out[21]: 0 4 1 5 Name: AAA, dtype: int64_1 lainnya yang dijelaskan dalam Mengurai komponen tanggal dalam multi-kolomMengurai komponen tanggal dalam multi-kolom lebih cepat dengan format In [11]: df = pd.DataFrame({'AAA': [4, 5, 6, 7], ....: 'BBB': [10, 20, 30, 40], ....: 'CCC': [100, 50, -30, -50]}) ....: In [12]: df Out[12]: AAA BBB CCC 0 4 10 100 1 5 20 50 2 6 30 -30 3 7 40 -50 In [13]: df['logic'] = np.where(df['AAA'] > 5, 'high', 'low') In [14]: df Out[14]: AAA BBB CCC logic 0 4 10 100 low 1 5 20 50 low 2 6 30 -30 high 3 7 40 -50 high_8 Lewati baris antara header dan dataIn [11]: df = pd.DataFrame({'AAA': [4, 5, 6, 7], ....: 'BBB': [10, 20, 30, 40], ....: 'CCC': [100, 50, -30, -50]}) ....: In [12]: df Out[12]: AAA BBB CCC 0 4 10 100 1 5 20 50 2 6 30 -30 3 7 40 -50 In [13]: df['logic'] = np.where(df['AAA'] > 5, 'high', 'low') In [14]: df Out[14]: AAA BBB CCC logic 0 4 10 100 low 1 5 20 50 low 2 6 30 -30 high 3 7 40 -50 high_9 Pilihan 1. lewati baris secara eksplisit untuk melewati barisIn [15]: df = pd.DataFrame({'AAA': [4, 5, 6, 7], ....: 'BBB': [10, 20, 30, 40], ....: 'CCC': [100, 50, -30, -50]}) ....: In [16]: df Out[16]: AAA BBB CCC 0 4 10 100 1 5 20 50 2 6 30 -30 3 7 40 -50 In [17]: df[df.AAA <= 5] Out[17]: AAA BBB CCC 0 4 10 100 1 5 20 50 In [18]: df[df.AAA > 5] Out[18]: AAA BBB CCC 2 6 30 -30 3 7 40 -500 pilihan 2. membaca nama kolom dan kemudian dataIn [15]: df = pd.DataFrame({'AAA': [4, 5, 6, 7], ....: 'BBB': [10, 20, 30, 40], ....: 'CCC': [100, 50, -30, -50]}) ....: In [16]: df Out[16]: AAA BBB CCC 0 4 10 100 1 5 20 50 2 6 30 -30 3 7 40 -50 In [17]: df[df.AAA <= 5] Out[17]: AAA BBB CCC 0 4 10 100 1 5 20 50 In [18]: df[df.AAA > 5] Out[18]: AAA BBB CCC 2 6 30 -30 3 7 40 -501 SQLDokumen Membaca dari database dengan SQL UnggulDokumen Membaca dari pegangan seperti file Memodifikasi pemformatan dalam keluaran XlsxWriter HTMLMembaca tabel HTML dari server yang tidak dapat menangani header permintaan default HDFStoreDokumen Kueri Sederhana dengan Indeks Stempel Waktu Mengelola data heterogen menggunakan hierarki beberapa tabel yang ditautkan Menghindari ketidakkonsistenan saat menulis ke toko dari berbagai proses/utas De-duplikasi toko besar dengan bongkahan, pada dasarnya adalah operasi reduksi rekursif. Menampilkan fungsi untuk mengambil data dari file csv dan membuat toko berdasarkan potongan, dengan parsing tanggal juga. Alur kerja Data Besar Membaca dalam urutan file, lalu memberikan indeks unik global ke toko saat menambahkan Groupby di HDFStore dengan kepadatan grup rendah Menghitung dengan HDFStore Memecahkan masalah pengecualian HDFStore Setting min_itemsize dengan string Menggunakan ptrepack untuk membuat indeks yang disortir sepenuhnya di toko Menyimpan Atribut ke node grup In [15]: df = pd.DataFrame({'AAA': [4, 5, 6, 7], ....: 'BBB': [10, 20, 30, 40], ....: 'CCC': [100, 50, -30, -50]}) ....: In [16]: df Out[16]: AAA BBB CCC 0 4 10 100 1 5 20 50 2 6 30 -30 3 7 40 -50 In [17]: df[df.AAA <= 5] Out[17]: AAA BBB CCC 0 4 10 100 1 5 20 50 In [18]: df[df.AAA > 5] Out[18]: AAA BBB CCC 2 6 30 -30 3 7 40 -502 File Binerpanda siap menerima array catatan NumPy, jika Anda perlu membaca dalam file biner yang terdiri dari array struct C. Misalnya, diberikan program C ini dalam file bernama In [21]: df.loc[(df['BBB'] < 25) & (df['CCC'] >= -40), 'AAA'] Out[21]: 0 4 1 5 Name: AAA, dtype: int642 yang dikompilasi dengan In [21]: df.loc[(df['BBB'] < 25) & (df['CCC'] >= -40), 'AAA'] Out[21]: 0 4 1 5 Name: AAA, dtype: int643 pada mesin 64-bit, In [15]: df = pd.DataFrame({'AAA': [4, 5, 6, 7], ....: 'BBB': [10, 20, 30, 40], ....: 'CCC': [100, 50, -30, -50]}) ....: In [16]: df Out[16]: AAA BBB CCC 0 4 10 100 1 5 20 50 2 6 30 -30 3 7 40 -50 In [17]: df[df.AAA <= 5] Out[17]: AAA BBB CCC 0 4 10 100 1 5 20 50 In [18]: df[df.AAA > 5] Out[18]: AAA BBB CCC 2 6 30 -30 3 7 40 -503 kode Python berikut akan membaca file biner In [21]: df.loc[(df['BBB'] < 25) & (df['CCC'] >= -40), 'AAA'] Out[21]: 0 4 1 5 Name: AAA, dtype: int644 menjadi panda In [21]: df.loc[(df['BBB'] < 25) & (df['CCC'] >= -40), 'AAA'] Out[21]: 0 4 1 5 Name: AAA, dtype: int645, di mana setiap elemen struct sesuai dengan kolom dalam bingkai In [15]: df = pd.DataFrame({'AAA': [4, 5, 6, 7], ....: 'BBB': [10, 20, 30, 40], ....: 'CCC': [100, 50, -30, -50]}) ....: In [16]: df Out[16]: AAA BBB CCC 0 4 10 100 1 5 20 50 2 6 30 -30 3 7 40 -50 In [17]: df[df.AAA <= 5] Out[17]: AAA BBB CCC 0 4 10 100 1 5 20 50 In [18]: df[df.AAA > 5] Out[18]: AAA BBB CCC 2 6 30 -30 3 7 40 -504 Catatan Offset elemen struktur mungkin berbeda tergantung pada arsitektur mesin tempat file dibuat. Menggunakan format file biner mentah seperti ini untuk penyimpanan data umum tidak disarankan, karena tidak lintas platform. Kami merekomendasikan HDF5 atau msgpack, keduanya didukung oleh fasilitas IO panda KomputasiIntegrasi numerik (berbasis sampel) dari deret waktu KorelasiSeringkali berguna untuk mendapatkan bentuk segitiga bawah (atau atas) dari matriks korelasi yang dihitung dari. Ini dapat dicapai dengan meneruskan topeng boolean ke In [21]: df.loc[(df['BBB'] < 25) & (df['CCC'] >= -40), 'AAA'] Out[21]: 0 4 1 5 Name: AAA, dtype: int647 sebagai berikut In [15]: df = pd.DataFrame({'AAA': [4, 5, 6, 7], ....: 'BBB': [10, 20, 30, 40], ....: 'CCC': [100, 50, -30, -50]}) ....: In [16]: df Out[16]: AAA BBB CCC 0 4 10 100 1 5 20 50 2 6 30 -30 3 7 40 -50 In [17]: df[df.AAA <= 5] Out[17]: AAA BBB CCC 0 4 10 100 1 5 20 50 In [18]: df[df.AAA > 5] Out[18]: AAA BBB CCC 2 6 30 -30 3 7 40 -505 Argumen metode dalam DataFrame. corr dapat menerima callable selain jenis korelasi yang disebutkan. Di sini kita menghitung matriks korelasi jarak untuk objek DataFrame In [15]: df = pd.DataFrame({'AAA': [4, 5, 6, 7], ....: 'BBB': [10, 20, 30, 40], ....: 'CCC': [100, 50, -30, -50]}) ....: In [16]: df Out[16]: AAA BBB CCC 0 4 10 100 1 5 20 50 2 6 30 -30 3 7 40 -50 In [17]: df[df.AAA <= 5] Out[17]: AAA BBB CCC 0 4 10 100 1 5 20 50 In [18]: df[df.AAA > 5] Out[18]: AAA BBB CCC 2 6 30 -30 3 7 40 -506 TimedeltaDokumen Menggunakan timedelta In [15]: df = pd.DataFrame({'AAA': [4, 5, 6, 7], ....: 'BBB': [10, 20, 30, 40], ....: 'CCC': [100, 50, -30, -50]}) ....: In [16]: df Out[16]: AAA BBB CCC 0 4 10 100 1 5 20 50 2 6 30 -30 3 7 40 -50 In [17]: df[df.AAA <= 5] Out[17]: AAA BBB CCC 0 4 10 100 1 5 20 50 In [18]: df[df.AAA > 5] Out[18]: AAA BBB CCC 2 6 30 -30 3 7 40 -507 Menambah dan mengurangi delta dan tanggal In [15]: df = pd.DataFrame({'AAA': [4, 5, 6, 7], ....: 'BBB': [10, 20, 30, 40], ....: 'CCC': [100, 50, -30, -50]}) ....: In [16]: df Out[16]: AAA BBB CCC 0 4 10 100 1 5 20 50 2 6 30 -30 3 7 40 -50 In [17]: df[df.AAA <= 5] Out[17]: AAA BBB CCC 0 4 10 100 1 5 20 50 In [18]: df[df.AAA > 5] Out[18]: AAA BBB CCC 2 6 30 -30 3 7 40 -50_8 Contoh lain Nilai dapat diatur ke NaT menggunakan np. nan, mirip dengan datetime In [15]: df = pd.DataFrame({'AAA': [4, 5, 6, 7], ....: 'BBB': [10, 20, 30, 40], ....: 'CCC': [100, 50, -30, -50]}) ....: In [16]: df Out[16]: AAA BBB CCC 0 4 10 100 1 5 20 50 2 6 30 -30 3 7 40 -50 In [17]: df[df.AAA <= 5] Out[17]: AAA BBB CCC 0 4 10 100 1 5 20 50 In [18]: df[df.AAA > 5] Out[18]: AAA BBB CCC 2 6 30 -30 3 7 40 -50_9 Aliasing Axis NamesUntuk memberikan alias secara global untuk nama sumbu, seseorang dapat mendefinisikan 2 fungsi ini In [19]: df = pd.DataFrame({'AAA': [4, 5, 6, 7], ....: 'BBB': [10, 20, 30, 40], ....: 'CCC': [100, 50, -30, -50]}) ....: In [20]: df Out[20]: AAA BBB CCC 0 4 10 100 1 5 20 50 2 6 30 -30 3 7 40 -500 In [19]: df = pd.DataFrame({'AAA': [4, 5, 6, 7], ....: 'BBB': [10, 20, 30, 40], ....: 'CCC': [100, 50, -30, -50]}) ....: In [20]: df Out[20]: AAA BBB CCC 0 4 10 100 1 5 20 50 2 6 30 -30 3 7 40 -50_1 In [19]: df = pd.DataFrame({'AAA': [4, 5, 6, 7], ....: 'BBB': [10, 20, 30, 40], ....: 'CCC': [100, 50, -30, -50]}) ....: In [20]: df Out[20]: AAA BBB CCC 0 4 10 100 1 5 20 50 2 6 30 -30 3 7 40 -50_2 Membuat Contoh DataUntuk membuat bingkai data dari setiap kombinasi dari beberapa nilai yang diberikan, seperti fungsi In [21]: df.loc[(df['BBB'] < 25) & (df['CCC'] >= -40), 'AAA'] Out[21]: 0 4 1 5 Name: AAA, dtype: int648 R, kita dapat membuat dict di mana kuncinya adalah nama kolom dan nilainya adalah daftar nilai data Bagaimana Anda membuat DataFrame dinamis?Inilah cara kami melakukannya. . Buat Kamus kosong. Ini akan menahan pasangan nilai kunci kami dari For Loop Mulai For Loop menggunakan file sebagai iterator kami Tetapkan nama untuk kunci. Dalam kasus saya, saya menggunakan nama file Baca DataFrame menggunakan pd. read_csv Tambahkan pasangan nilai kunci ke kamus Bagaimana cara membuat DataFrame dinamis di PySpark?Siapkan PySpark 1. x . Buat SparkContext Buat SQLContext Buat HiveContext Buat DataFrame menggunakan. fungsi toDF() Buat DataFrame menggunakan fungsi createDataFrame() Buat DataFrame menggunakan kombinasi fungsi createDataFrame() dan skema StructType Muat file CSV Baca file TXT Bagaimana Anda membuat DataFrame dalam satu lingkaran dengan Python?Langkah 1 - Impor perpustakaan. impor panda sebagai pd. . Langkah 2 - Siapkan Data. df=pd. DataFrame({'Tabel 9'. [9,18,27], 'Tabel 10'. [10,20,30]}). Langkah 3 - Menambahkan bingkai data dalam for loop. untuk saya dalam rentang (4,11). df=df. tambahkan({'Tabel 9'. i*9,'Tabel 10'. i*10},ignore_index=True). Langkah 4 - Mencetak hasil. cetak('df\n',df) Bagaimana Anda menambahkan kolom secara dinamis dengan Python?Buat Kolom Secara Dinamis di Pandas Dataframe . Normalisasi Rangkaian Waktu Berjendela. . Konversikan Semua Kolom Non-numerik ke Tipe Data Kategori. . Membuat Kolom Total Berjalan di Pandas. . Pivoting Bingkai Data Panda. . Mengganti Nama Kolom dalam Bingkai Data Pandas Menggunakan Kamus dan Daftar. . Cara Menghapus Tanda Baca Dari Teks dengan Python |