1. ホーム
  2. python

[解決済み】エラー「同一ラベルのシリーズオブジェクトしか比較できない」とsort_indexの関係

2022-01-30 21:27:16

質問

2つのデータフレームがあります。 df1df2行と列と変数の数が同じで、ブール型変数 choice を2つのデータフレームで表示します。次に、以下を使用します。 {コード を使用してデータを操作します。しかし、boolean varを比較しようとすると、何かが間違っているようです。

以下、私のデータフレームのサンプルとコードです。

プレ if/else

以下はそのエラーです。

#df1
v_100     choice #boolean
7          True
0          True
7          False
2          True

#df2
v_100     choice #boolean
1          False
2          True
74         True
6          True

def lastTwoTrials_outcome():
     df1 = df.iloc[5::6, :] #df1 and df2 are extracted from the same dataframe first
     df2 = df.iloc[4::6, :]

     if df1['choice'] != df2['choice']:  # if "choice" is different in the two dataframes
         df1['v_100'] = (df1['choice'] + df2['choice']) * 0.5

同じエラーを発見しました こちら という回答があります。 {コード {コード しかし、その理由がよくわからないのですが?どなたか詳しく説明してください(それが正しい解決策であれば)。

ありがとうございました。

解決するには?

が必要だと思います。 if df1['choice'] != df2['choice']: File "path", line 818, in wrapper raise ValueError(msg) ValueError: Can only compare identically-labeled Series objects 同じインデックス値で比較する場合、新しいカラムを作成する場合は {コード または sort_index:

また、代わりに {コード 使用 {コード というのも、ブーリアン演算を行うからです。

reset_index

サンプル

mask

前 {{コード