特定の条件下で列と行の値を交換する[重複]

Dec 03 2020

次のパンダデータフレームがあります。

列の値'A start'が負であるかどうかを確認したいと思います。もしスワップ列の値より負'start''end'し、列に'A start''A end'行のどこ

'A start'負の値を持っています。したがって、結果は次のようになります。

で解決しようとしましたwhereが、うまくいきませんでした。

私はPython3.8を使用しています。

手伝ってくれてありがとうございます。

回答

AasthaSethia Dec 03 2020 at 20:37

この投稿を見てください。それはあなたの質問に似ています。そうでない場合は、他のオプションを探すことができます。

1行だけを使用してパンダデータフレーム内の選択された行の列値を交換するための正しい構文は何ですか?

kirtipurohit Dec 03 2020 at 20:42

これがを使用する最も簡単な方法です where


df = pd.DataFrame()
df['start']   = [1,5,7,2]
df['end']     = [4,6,8,9,]
df['A start'] = [234, -475, -765, 113]
df['A end']   = [-654, 312, 987, -553]


df[['A start','A end']] = df[['A end','A start']].where(df['A start'] < 0 , df[['A start','A end']].values)
df

出力: