Saat mencoba memahami DataFrame besar di Pandas, Anda mungkin perlu mengelompokkannya dengan kolom dan baris. Dalam tutorial ini kami akan menunjukkan kasus penggunaan yang paling umum dari partisi kolom DataFrame Anda.
Kami akan mulai dengan menyiapkan contoh DataFrame kami, yang akan kami lakukan dengan menjalankan kode Python berikut di lingkungan favorit kami (untuk kesederhanaan, saya menggunakan Anaconda dan Jupyter Lab).
import pandas as pd # import the pandas library
languages = ({"language": [ "Python", "C-Sharp", "Javascript","PHP"] ,
"avg_difficulty_level": [3, 2, 2, 1],
"avg_salary": [120, 100, 120, 80],
"applications": [10,15,14,20]})
# Now let's convert our dict to a DataFrame
languages = pd.DataFrame.from_dict(languages)
Sekarang, mari kita lihat baris pertama Dataframe menggunakan metode head().
languages.head()
Seperti yang Anda lihat, ini adalah DataFrame yang cukup sederhana yang akan kami gunakan sebagai contoh dalam posting ini:
| |
bahasa |
rata_tingkat_kesulitan |
gaji_rata-rata |
aplikasi |
| 0 |
Python |
3 |
120 |
10 |
| 1 |
C-Tajam |
2 |
100 |
15 |
| 2 |
Javascript |
2 |
120 |
14 |
| 3 |
PHP |
1 |
80 |
20 |
Memfilter satu kolom
Kita akan mulai dengan kasus yang paling sederhana, yaitu mensubset satu kolom dari dataset kita. Menjalankan perintah berikut akan membuat objek Seri:
Dengan nama / label
languages["language"]
Outputnya adalah Seri:
0 Python
1 C-Tajam
2 Javascript
3 PHP
Nama: bahasa, dtype: objek
type(languages["language"])
pandas.core.series.Series
Berdasarkan indeks
Perintah berikut juga akan mengembalikan Seri yang berisi kolom pertama
languages.iloc[:,0]
Memilih beberapa kolom
Dengan nama
Saat melewati daftar kolom, Pandas akan mengembalikan DataFrame yang berisi bagian dari data.
languages[["language", "applications"]]
| |
bahasa |
aplikasi |
| 0 |
Python |
10 |
| 1 |
C-Tajam |
15 |
| 2 |
Javascript |
14 |
| 3 |
PHP |
20 |
Berdasarkan label (dengan lokasi)
df.loc[:,["language","applications"]]
Hasilnya akan serupa.
Berdasarkan indeks
Sekarang mari kita ambil beberapa kolom dengan menggunakan indeks:
languages.iloc[: ,[0,3]]
| |
bahasa |
aplikasi |
| 0 |
Python |
10 |
| 1 |
C-Tajam |
15 |
| 2 |
Javascript |
14 |
| 3 |
PHP |
20 |
Dengan kondisi
Dalam hal ini, kami hanya akan menunjukkan kolom mana yang namanya cocok dengan ekspresi tertentu. Kami akan menggunakan metode filter yang cukup praktis :
languages.filter(axis = 1, like="avg")
Catatan:
- kita juga dapat memfilter menurut ekspresi reguler tertentu (regex).
- Kita dapat menerapkan parameter axis=0 untuk memfilter berdasarkan nilai baris tertentu.
Filter baris tertentu berdasarkan kondisi
Berikut cara yang cukup mudah untuk mensubset DataFrame menurut nilai baris:
languages[(languages["applications"] > 15)]
Kami hanya memiliki satu hasil:
languages[(languages["applications"] > 15)]
| |
bahasa |
rata_tingkat_kesulitan |
gaji_rata-rata |
aplikasi |
| 3 |
PHP |
1 |
80 |
20 |