根據列值拆分Pandas DataFrame
在Pandas 中,一個常見的場景是需要根據列值將DataFrame 拆分為多個子集特定列中存在的值。這允許有針對性的數據分析和操作。
為了實現這一點,我們可以利用 Pandas 中布林索引的強大功能。讓我們考慮一個包含名為「Sales」的欄位的 DataFrame,並探討如何根據「Sales」值是低於還是高於閾值 s' 將其分成兩部分。
解決方案:
<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
這將建立一個新的DataFrame df1,其中包含「Sales」值大於或等於's' 的行。
<code class="python">df2 = df[df['Sales'] < s] print (df2)
A Sales 0 3 10 1 4 20
df2 包含「Sales」值小於 's' 的行。
使用位元求反的替代方法:
除了使用大於或等於運算符,我們也可以使用位元求反(~)來反轉掩碼碼:
<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
這種方法實現了相同的分割,但允許更簡潔和優化的編碼風格。
以上是如何根據列值將 Pandas DataFrame 拆分為子集?的詳細內容。更多資訊請關注PHP中文網其他相關文章!