Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimana untuk Memisahkan Pandas DataFrame kepada Subset Berdasarkan Nilai Lajur?

Bagaimana untuk Memisahkan Pandas DataFrame kepada Subset Berdasarkan Nilai Lajur?

Barbara Streisand
Lepaskan: 2024-10-19 22:33:02
asal
753 orang telah melayarinya

How to Split Pandas DataFrame into Subsets Based on Column Value?

Memisahkan DataFrame Panda Berdasarkan Nilai Lajur

Dalam Panda, senario yang biasa dihadapi ialah keperluan untuk membahagikan DataFrame kepada beberapa subset berdasarkan nilai yang terdapat dalam lajur tertentu. Ini membolehkan analisis dan manipulasi data yang disasarkan.

Untuk mencapai matlamat ini, kami boleh memanfaatkan kuasa pengindeksan boolean dalam Pandas. Mari kita pertimbangkan DataFrame dengan lajur bernama "Jualan" dan terokai cara kita boleh membahagikannya kepada dua berdasarkan sama ada nilai "Jualan" berada di bawah atau di atas nilai ambang 's'.

Penyelesaian:

<code class="python"># Create a DataFrame with a "Sales" column
df = pd.DataFrame({'Sales':[10,20,30,40,50], 'A':[3,4,7,6,1]})
print (df)</code>
Salin selepas log masuk
   A  Sales
0  3     10
1  4     20
2  7     30
3  6     40
4  1     50
Salin selepas log masuk
<code class="python"># Split the DataFrame based on "Sales" values
s = 30

df1 = df[df['Sales'] >= s]
print (df1)</code>
Salin selepas log masuk
   A  Sales
2  7     30
3  6     40
4  1     50
Salin selepas log masuk
Salin selepas log masuk

Ini mencipta DataFrame baharu, df1, yang mengandungi baris yang nilai "Jualan" lebih besar daripada atau sama dengan 's'.

<code class="python">df2 = df[df['Sales'] < s]
print (df2)
Salin selepas log masuk
   A  Sales
0  3     10
1  4     20
Salin selepas log masuk
Salin selepas log masuk

df2 terdiri daripada baris dengan nilai "Jualan" kurang daripada 's'.

Pendekatan Alternatif Menggunakan Penolakan Bitwise:

Daripada menggunakan lebih besar daripada atau sama dengan pengendali, kita juga boleh menggunakan penolakan bitwise (~) untuk menyongsangkan topeng:

<code class="python">mask = df['Sales'] >= s
df1 = df[mask]
df2 = df[~mask]
print (df1)</code>
Salin selepas log masuk
   A  Sales
2  7     30
3  6     40
4  1     50
Salin selepas log masuk
Salin selepas log masuk
<code class="python">print (df2)</code>
Salin selepas log masuk
   A  Sales
0  3     10
1  4     20
Salin selepas log masuk
Salin selepas log masuk

Pendekatan ini mencapai pemisahan yang sama tetapi membolehkan gaya pengekodan yang lebih ringkas dan dioptimumkan.

Atas ialah kandungan terperinci Bagaimana untuk Memisahkan Pandas DataFrame kepada Subset Berdasarkan Nilai Lajur?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan