Panda di mana: Memahami PD.DataFrame.where () – Codewithaden

PANDAS memiliki beberapa struktur data yang menarik:

  1. Tabel dengan beberapa kolom adalah DataFrame
  2. Kolom DataFrame, atau objek seperti daftar, disebut a Seri

SEBUAH DataFrame adalah meja seperti di SQL atau Excel. Ini serupa dalam struktur, memungkinkan untuk menggunakan operasi serupa seperti agregasi, penyaringan , dan berputar

Panda dimana

PANDAS WHERE () adalah fungsi perpustakaan yang digunakan untuk memeriksa basis data untuk satu atau lebih kondisi dan mengembalikan hasilnya. Fungsi PD.DataFrame.where () menerima banyak argumen dan mengembalikan hasil berdasarkan kondisi.

Secara default, baris yang tidak memuaskan kondisinya diisi Nan nilai. Perbedaan antara numpy dimana dan panda di mana DataFrame memasok nilai default yang disebut metode WHERE ().

Sintaksis

DataFrame.where(cond, other=nan, inplace=False, 
                axis=None, level=None, errors=’raise’, 
                try_cast=False, raise_on_error=None) 

Parameter

cond: Seri Bool/DataFrame, seperti Array, atau Callable

Jika cond di mana benar, simpan nilai aslinya. Jika cond false, ganti dengan nilai yang sesuai dari orang lain. Jika cond dapat dipanggil, dihitung pada seri/dataFrame dan mengembalikan seri Boolean/DataFrame atau Array.

lainnya: Scalar, Seri/DataFrame, atau E Callable E ntries, di mana cond salah, diganti dengan nilai yang sesuai dari parameter lainnya . Jika yang lain dapat dipanggil, itu dihitung pada seri/dataFrame dan harus mengembalikan skalar atau seri/dataFrame.

di tempat: bool, default false

Apakah akan beroperasi pada data.

sumbu: int, tidak ada default

Sumbu penyelarasan, jika diperlukan.

tingkat: int, tidak ada default

Tingkat penyelarasan, jika diperlukan.

Kesalahan: str, {‘raise’, ‘abaikan’}, default ‘raise.’

Perhatikan bahwa saat ini, parameter kesalahan tidak akan mempengaruhi hasil dan akan selalu memaksa ke DTYPE yang sesuai.

  1. menaikkan’ : Biarkan pengecualian dinaikkan.
  2. ‘mengabaikan’ : Menekan pengecualian tentang kesalahan mengembalikan objek asli.

try_cast: bool, default false.

Cobalah untuk memberikan hasil kembali ke jenis input (jika memungkinkan).

Nilai pengembalian

Ini mengembalikan jenis yang sama dengan penelepon.

Menerapkan Pandas DataFrame Where ()

Lihat kode berikut.

# app.py

import pandas as pd

data = {'Show': ['Stranger Things', 'The X-Files', 'Mandalorian', 'The Boys'],
        'Streaming': ['Netflix', 'Fx', 'Disney Plus', 'Amazon Prime'],
        'Season': [3, 12, 1, 2],
        'Main Actor': ['Millie', 'Gillian', 'Pedro', 'Karl Urban']}
df = pd.DataFrame.from_dict(datae

# filtering data
filter = df["Show"] == "Mandalorian"

df.where(filter, inplace=True)
print(df)
 

Keluaran

          Show    Streaming  Season Main Actor
0          NaN          NaN     NaN        NaN
1          NaN          NaN     NaN        NaN
2  Mandalorian  Disney Plus     1.0      Pedro
3          NaN          NaN     NaN        NaN 

Tugas utama dari metode WHERE () dalam contoh di atas adalah untuk memeriksa DataFrame untuk satu kondisi, “ Tampilkan = Mandalorian, ” dan mengembalikan output sesuai. Secara default, jika baris tidak memuaskan suatu kondisi, itu diisi dengan Nan nilai.

Dalam hasil kami DataFrame, hanya baris dengan nilai Mandalorian yang dikembalikan, dan nilai -nilai lainnya adalah NAN.

Seri panda di mana

Mari kita buat seri menggunakan Python Range () berfungsi dan gunakan kondisi di mana untuk mengambil nilai yang diperlukan.

# app.py

import pandas as pd

s = pd.Series(range(5))
s.where(s > 2, inplace=True)
print(s)
 

Keluaran

0    NaN
1    NaN
2    NaN
3    3.0
4    4.0
dtype: float64 

Seperti yang ditunjukkan dalam output, setiap baris yang tidak memenuhi nilai> 2 diganti dengan Nan

Panda di mana: menerapkan beberapa kondisi

Untuk menerapkan beberapa kondisi di panda di mana () metode, gunakan operator antara kondisi.

Jika satu kondisi gagal, itu tidak akan mengembalikan nilai aktual dengan DataFrame. Lihat kode berikut.

# app.py

import pandas as pd

data = {'Show': ['Stranger Things', 'The X-Files', 'Mandalorian', 'The Boys'],
        'Streaming': ['Netflix', 'Fx', 'Disney Plus', 'Amazon Prime'],
        'Season': [3, 12, 1, 2],
        'Main Actor': ['Millie', 'Gillian', 'Padro', 'Karl Urban']}
df = pd.DataFrame.from_dict(data)

# filtering data
filter = df["Show"] == "Stranger Things"
filter2 = df["Season"] == 3

df.where(filter & filter2, inplace=True)
print(df) 

Keluaran

              Show Streaming  Season Main Actor
0  Stranger Things   Netflix     3.0     Millie
1              NaN       NaN     NaN        NaN
2              NaN       NaN     NaN        NaN
3              NaN       NaN     NaN        NaN 

Jika satu kondisi tidak memuaskan, itu akan mengembalikan nilai NAN.

# app.py

import pandas as pd

data = {'Show': ['Stranger Things', 'The X-Files', 'Mandalorian', 'The Boys'],
        'Streaming': ['Netflix', 'Fx', 'Disney Plus', 'Amazon Prime'],
        'Season': [3, 12, 1, 2],
        'Main Actor': ['Millie', 'Gillian', 'Padro', 'Karl Urban']}
df = pd.DataFrame.from_dict(data)

# filtering data
filter = df["Show"] == "Stranger Things"
filter2 = df["Season"] == 12

df.where(filter & filter2, inplace=True)
print(df)
 

Dalam contoh ini, kondisi pertama memuaskan Tampilkan = hal -hal yang aneh, tapi di filter2 , itu tidak memuaskan Hal -hal yang asing Pertunjukan memiliki 12 musim.

Jadi, itu tidak akan mengembalikan barisan Stranger Things dan baris X-Files karena kondisi pertama tidak akan memuaskan. Jadi, itu akan mengembalikan nilai NAN.

Keluaran

   Show   Streaming  Season   Main Actor
0  NaN       NaN     NaN        NaN
1  NaN       NaN     NaN        NaN
2  NaN       NaN     NaN        NaN
3  NaN       NaN     NaN        NaN 

Anda dapat melihat bahwa karena satu kondisi gagal, itu akan mengembalikan DataFrame dengan nilai NAN.

Itu untuk Pandas DataFrame, Where () Function Contoh.

Lihat juga

Mean panda

Kolom drop panda

Pandaframe drop_duplicates ()

Artikel ini berasal dari website Winpoin, dan kemudian diterjemahkan ke bahasa indonesia, baca artikel asli disini

Leave a Reply

Your email address will not be published. Required fields are marked *