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

Bagaimana untuk Memisahkan Pandas DataFrame kepada Subset Berdasarkan Nilai Lajur?

Barbara Streisand
Barbara Streisandasal
2024-10-19 22:33:02660semak imbas

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>
   A  Sales
0  3     10
1  4     20
2  7     30
3  6     40
4  1     50
<code class="python"># Split the DataFrame based on "Sales" values
s = 30

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

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)
   A  Sales
0  3     10
1  4     20

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>
   A  Sales
2  7     30
3  6     40
4  1     50
<code class="python">print (df2)</code>
   A  Sales
0  3     10
1  4     20

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!

Kenyataan:
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