データ操作タスクでは、複数の条件を持つ複雑な選択条件が頻繁に発生します。 Pandas は、これらのシナリオを効率的に処理するためのメソッドとイディオムを提供します。
例:
次の DataFrame を考えてみましょう:
import pandas as pd from random import randint df = pd.DataFrame({'A': [randint(1, 9) for x in range(10)], 'B': [randint(1, 9)*10 for x in range(10)], 'C': [randint(1, 9)*100 for x in range(10)]})
問題:
「A」から値を選択します。ここで、対応する値は'B' は 50 より大きく、'C' は 900 ではありません。
解決策:
列演算を適用して、条件ごとにブール型 Series オブジェクトを取得できます。 :
df["B"] > 50 (df["B"] > 50) & (df["C"] != 900)
または同等:
(df["B"] > 50) & ~(df["C"] == 900)
これらのブール値シリーズは、DataFrame へのインデックス付けに使用できます:
df["A"][(df["B"] > 50) & (df["C"] != 900)]
、または .loc を使用:
df.loc[(df["B"] > 50) & (df["C"] != 900), "A"]
注:
書き込みアクセスの場合は、.loc を使用することをお勧めします。後者ではコピーではなくビューが生成され、潜在的な問題が発生する可能性があるためです。
以上が複数の複雑な基準を使用して Pandas DataFrame からデータを効率的に選択するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。