[解決済み] np.whereのpandas版
2022-03-03 19:25:14
質問
np.where
はベクトル化されたif/elseのセマンティクスを持っています(Apache Sparkの
when
/
otherwise
DataFrame メソッド)。を使うことができるのは知っています。
np.where
で
pandas.Series
しかし
pandas
の代わりに使用する独自の API を定義していることがよくあります。
numpy
関数を使用した方が便利です。
pd.Series
/
pd.DataFrame
.
確かに、私は
pandas.DataFrame.where
. しかし、一見したところ、全く異なるセマンティクスを持っています。の最も基本的な例を書き換える方法は見つかりませんでした。
np.where
パンダを使った
where
:
# df is pd.DataFrame
# how to write this using df.where?
df['C'] = np.where((df['A']<0) | (df['B']>0), df['A']+df['B'], df['A']/df['B'])
私は何か明らかなことを見逃しているのでしょうか?それともパンダの
where
と同じ名前でありながら、全く別の用途を想定しています。
np.where
?
解決方法は?
試してみてください。
(df['A'] + df['B']).where((df['A'] < 0) | (df['B'] > 0), df['A'] / df['B'])
との違いは
numpy
where
と
DataFrame
where
がデフォルト値を提供することです。
DataFrame
は、その
where
メソッドが呼び出されている (
ドキュメント
).
すなわち
np.where(m, A, B)
は、おおよそ
A.where(m, B)
もし、pandasを使用して同様の呼出シグネチャが必要な場合は Pythonのメソッド呼び出しの仕組み :
pd.DataFrame.where(cond=(df['A'] < 0) | (df['B'] > 0), self=df['A'] + df['B'], other=df['A'] / df['B'])
またはkwargsなし(注意:引数の位置順序が
numpy
where
引数順
):
pd.DataFrame.where(df['A'] + df['B'], (df['A'] < 0) | (df['B'] > 0), df['A'] / df['B'])
関連
-
[解決済み】「OverflowError: Python int too large to convert to C long" on windows but not mac
-
[解決済み] PandasでDataFrameの行を反復処理する方法
-
[解決済み] Pandasのカラム名のリネーム
-
[解決済み] Pandas DataFrameからカラムを削除する
-
[解決済み] Pandasのデータフレームで複数の列を選択する
-
[解決済み] Pandas DataFrameの行数を取得する方法は?
-
[解決済み] 一行ずつ追加してPandas Dataframeを作成する
-
[解決済み】Pandas DataFrameのカラムヘッダからリストを取得する。
-
[解決済み】pandasでカラムの種類を変更する
-
[解決済み】PandasでSettingWithCopyWarningに対処する方法
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
ピローによる動的キャプチャ認識のためのPythonサンプルコード
-
pythonを使ったオフィス自動化コード例
-
Pythonを使って簡単なzipファイルの解凍パスワードを手作業で解く
-
Python interpreted model libraryによる機械学習モデル出力の可視化 Shap
-
Pythonコードの可読性を向上させるツール「pycodestyle」の使い方を詳しく解説します
-
Python Pillow Image.save jpg画像圧縮問題
-
[解決済み】ilocが「IndexError: single positional indexer is out-of-bounds」を出す。
-
[解決済み】pygame.error: ビデオシステムが初期化されていない
-
[解決済み】ImportError: PILという名前のモジュールがない
-
[解決済み】SyntaxError: デフォルト以外の引数がデフォルトの引数に続く