パンダのブール演算による動作の違い

HeorotsHero

次のテストコードについて、3行目(インデックス2)の内容test1test2が異なる理由を誰かが説明できますか?私はコードをlatest1記述し、test2それを解決するためにlaを書き直す前に、コードが機能しない理由を理解しようとして数時間を無駄にしました生成に使用されるワンライナーのパンダ内の操作の順序はtest1何ですか?

import pandas as pd

# test data
dat1 = [1,1,2,1]
dat2 = ['a','b','c','d'] # only for building a multi-column DF, not otherwise used
dat3 = [False,False,True,False]

# build a dataframe
df = pd.DataFrame( data={ "Data1":dat1, "Data2":dat2})

# first test
test1 = df['Data1']==1 | pd.Series(dat3)
print('==test 1==')
print(test1)

# second test
tmp1 = df['Data1']==1
tmp2 = pd.Series(dat3)
test2 = tmp1 | tmp2
print('==test 2==')
print(test2)

出力は

==test 1==
0     True
1     True
2    False
3     True
dtype: bool
==test 2==
0    True
1    True
2    True
3    True
dtype: bool
アンキー

違いは、演算子の優先順位が原因で発生します。次のことを試してください。

test1 = (df['Data1']==1) | pd.Series(dat3) # Note the parenthesis (df['Data1']==1)

次に、両方が等しいことがわかります。

# first test
test1 = (df['Data1']==1) | pd.Series(dat3)
print('==test 1==')
print(test1)

# second test
tmp1 = df['Data1']==1
tmp2 = pd.Series(dat3)
test2 = tmp1 | tmp2
print('==test 2==')
print(test2)

==test 1==
0    True
1    True
2    True
3    True
dtype: bool
==test 2==
0    True
1    True
2    True
3    True
dtype: bool

あなたがするとき:

df['Data1']==1 | pd.Series(dat3)

これは次のように評価されます。

df['Data1'] == (1 | pd.Series(dat3))

これを回避するには、条件ごとに括弧を使用します。

test1 = (df['Data1']==1) | pd.Series(dat3)

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

タッチパッドとボタンのダブルタップによる動作の違い

分類Dev

パンダをセル演算でMSExcelのように動作させる方法は?

分類Dev

パンダでピボットテーブルをExcelのピボットテーブルのように動作させる方法は?

分類Dev

範囲選択における動作の違い(マテリアル-カレンダービュー)

分類Dev

ダブルパイプ演算子とPythonvirtualenvの奇妙な動作

分類Dev

パンダピボットテーブル、複数の列の違いを取ることによってテーブルを作成します

分類Dev

JavaScript:オブジェクトプロパティによるキーを持つオブジェクトの動作配列の並べ替えの違い

分類Dev

perlwhileループでのeq演算子による予期しない動作。whileループは停止しません

分類Dev

複数の条件による行間のパンダの違い

分類Dev

パンダの列の違いによる日時の変更

分類Dev

バッチスクリプトをチェーンするときの予期しないダブルアンパサンド/パイプの動作

分類Dev

引数処理によるSedコマンドの動作の違い

分類Dev

マルチインデックスを使用しているときの非常に奇妙なパンダの動作

分類Dev

パンダパネル.dropnaの動作

分類Dev

divをテーブルのように動作させる

分類Dev

パンダのget_dummiesをDictVectorizerのように動作させる方法

分類Dev

forループの動作に違いがあるのはなぜですか?

分類Dev

パネルデータパンダ、特定の条件による変動

分類Dev

パンダでグループごとに行の違いを計算する

分類Dev

ブール演算子の違い:&vs &&および| 対||

分類Dev

C ++コンパイラーはカプセル化の動作に違いがあります-どちらが正しく動作しますか?

分類Dev

GOコードのように動作するようにJavaをコンパイルする

分類Dev

ひし形演算子によるJavaオブジェクトの初期化、ひどいjavacコンパイル時のパフォーマンス

分類Dev

アクティブなパターンがこのように動作するのはなぜですか?

分類Dev

ブローカーがダウンしているため、ストリームの変更ログと再パーティションパーティションのサブセットを使用できません-ストリームはどのように動作する必要がありますか?

分類Dev

パンダのDateoffsetの動作に一貫性がない

分類Dev

パンダでグループを作った後、微積分を作る方法についての質問

分類Dev

Java三項演算子の自動ボクシング動作によるNullPointerException

分類Dev

リンカ/ローダーによる使用方法を無視した静的ライブラリと動的ライブラリの違い

Related 関連記事

  1. 1

    タッチパッドとボタンのダブルタップによる動作の違い

  2. 2

    パンダをセル演算でMSExcelのように動作させる方法は?

  3. 3

    パンダでピボットテーブルをExcelのピボットテーブルのように動作させる方法は?

  4. 4

    範囲選択における動作の違い(マテリアル-カレンダービュー)

  5. 5

    ダブルパイプ演算子とPythonvirtualenvの奇妙な動作

  6. 6

    パンダピボットテーブル、複数の列の違いを取ることによってテーブルを作成します

  7. 7

    JavaScript:オブジェクトプロパティによるキーを持つオブジェクトの動作配列の並べ替えの違い

  8. 8

    perlwhileループでのeq演算子による予期しない動作。whileループは停止しません

  9. 9

    複数の条件による行間のパンダの違い

  10. 10

    パンダの列の違いによる日時の変更

  11. 11

    バッチスクリプトをチェーンするときの予期しないダブルアンパサンド/パイプの動作

  12. 12

    引数処理によるSedコマンドの動作の違い

  13. 13

    マルチインデックスを使用しているときの非常に奇妙なパンダの動作

  14. 14

    パンダパネル.dropnaの動作

  15. 15

    divをテーブルのように動作させる

  16. 16

    パンダのget_dummiesをDictVectorizerのように動作させる方法

  17. 17

    forループの動作に違いがあるのはなぜですか?

  18. 18

    パネルデータパンダ、特定の条件による変動

  19. 19

    パンダでグループごとに行の違いを計算する

  20. 20

    ブール演算子の違い:&vs &&および| 対||

  21. 21

    C ++コンパイラーはカプセル化の動作に違いがあります-どちらが正しく動作しますか?

  22. 22

    GOコードのように動作するようにJavaをコンパイルする

  23. 23

    ひし形演算子によるJavaオブジェクトの初期化、ひどいjavacコンパイル時のパフォーマンス

  24. 24

    アクティブなパターンがこのように動作するのはなぜですか?

  25. 25

    ブローカーがダウンしているため、ストリームの変更ログと再パーティションパーティションのサブセットを使用できません-ストリームはどのように動作する必要がありますか?

  26. 26

    パンダのDateoffsetの動作に一貫性がない

  27. 27

    パンダでグループを作った後、微積分を作る方法についての質問

  28. 28

    Java三項演算子の自動ボクシング動作によるNullPointerException

  29. 29

    リンカ/ローダーによる使用方法を無視した静的ライブラリと動的ライブラリの違い

ホットタグ

アーカイブ