ホームページ > バックエンド開発 > Python チュートリアル > Pandas で特定の列値に基づいてデータフレームを分割するにはどうすればよいですか?

Pandas で特定の列値に基づいてデータフレームを分割するにはどうすればよいですか?

DDD
リリース: 2024-10-19 22:35:02
オリジナル
272 人が閲覧しました

How to Split a DataFrame Based on a Specific Column Value in Pandas?

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

データ分析では、DataFrame を複数に分割する必要がある状況によく遭遇します。特定の列値に基づくデータフレーム。そのようなケースの 1 つは、DataFrame を 2 つの部分に分割する場合です。1 つは特定のしきい値以下の値を持つ行を含み、もう 1 つはそのしきい値以上の値を持つ行を含みます。

Pandas ではこれを実現できます。ブールインデックスを使用して分割します。この分割を実現する方法を例を挙げて説明します。

「Sales」という名前の列を持つ次の DataFrame について考えます。

df = pd.DataFrame({'Sales':[10,20,30,40,50], 'A':[3,4,7,6,1]})
print (df)

   A  Sales
0  3     10
1  4     20
2  7     30
3  6     40
4  1     50
ログイン後にコピー

この DataFrame を、売上値 30:

直接比較による分割:

最も簡単な方法は、ブール型インデックス演算子 '>=' を使用した直接比較を使用することです:

<code class="python">s = 30

df1 = df[df['Sales'] >= s]
print (df1)

   A  Sales
2  7     30
3  6     40
4  1     50</code>
ログイン後にコピー

これにより、Sales 値が 30 以上であるすべての行を含む df1 という新しいデータフレームが作成されます。

逆マスクによる分割:

Sales が 30 未満の行を含む DataFrame を作成するには、~:

<code class="python">df2 = df[~mask]
print (df2)

   A  Sales
0  3     10
1  4     20</code>
ログイン後にコピー

を使用してマスクを反転できます。これにより、Sales 値が 30 未満のすべての行を含む df2 という新しい DataFrame が作成されます。 30.

以上がPandas で特定の列値に基づいてデータフレームを分割するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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