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