I have two dataframes df1
df2
with the same numbers of rows and columns and variables, and I'm trying to compare the boolean variable choice
in the two dataframes. Then use if/else
to manipulate the data. But something seems wrong when I try to compare the boolean var.
Here are my dataframes sample and codes:
#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
Here's the error:
if df1['choice'] != df2['choice']:
File "path", line 818, in wrapper
raise ValueError(msg)
ValueError: Can only compare identically-labeled Series objects
I found the same error here, and an answer suggests to sort_index
first, but I don't really understand why though? Can anyone explain more in detail please (if that's the correct solution)?
Thanks!