ホームページ > バックエンド開発 > Python チュートリアル > 列の値に基づいて Pandas DataFrame をサブセットに分割する方法は?

列の値に基づいて Pandas DataFrame をサブセットに分割する方法は?

Barbara Streisand
リリース: 2024-10-19 22:33:02
オリジナル
753 人が閲覧しました

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

列の値に基づいて Pandas DataFrame を分割する

Pandas でよく発生するシナリオは、次の値に基づいて DataFrame を複数のサブセットに分割する必要があることです。特定の列に存在する値。これにより、対象を絞ったデータ分析と操作が可能になります。

これを実現するには、Pandas のブール インデックス機能を活用できます。 「Sales」という名前の列を持つ DataFrame を考えて、「Sales」の値がしきい値「s」を下回っているか上回っているかに基づいて、それを 2 つに分割する方法を検討してみましょう。

解決策:

<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
ログイン後にコピー
ログイン後にコピー

これにより、「Sales」値が 's' 以上である行を含む新しいデータフレーム df1 が作成されます。

<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 中国語 Web サイトの他の関連記事を参照してください。

ソース:php
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート