ホームページ > バックエンド開発 > Python チュートリアル > 複数の複雑な基準を使用して Pandas DataFrame からデータを効率的に選択するにはどうすればよいですか?

複数の複雑な基準を使用して Pandas DataFrame からデータを効率的に選択するにはどうすればよいですか?

DDD
リリース: 2024-12-02 20:45:14
オリジナル
565 人が閲覧しました

How to Efficiently Select Data from a Pandas DataFrame with Multiple Complex Criteria?

Pandas.DataFrame からの複雑な条件による選択

データ操作タスクでは、複数の条件を持つ複雑な選択条件が頻繁に発生します。 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 サイトの他の関連記事を参照してください。

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