Я вижу различия в моем выводе при использовании sort_values. В качестве примера я написал код 3 разными способами, вывод которых должен быть одинаковым, если я что-то не так понял. Я использую pandas 0.25.3. Может кто-нибудь объяснить, почему это происходит?
df1 = df.loc[:, ['A', 'B', 'ref']].sort_values(by='ref').reset_index(drop=True)
df1 = df1.loc[df['ref'].isin(['r1','r2','r3'])]
df2 = df.loc[:, ['A', 'B', 'ref']]
df2 = df2.loc[df['ref'].isin(['r1','r2','r3'])]
df3 = df.loc[df['ref'].isin(['r1','r2','r3']), ['A', 'B', 'ref']].sort_values(by='ref').reset_index(drop=True)
Ниже вывод для df1 неверен, в то время как другие 2 верны:
cond=((df1['A']-df1['A'].shift(-1))*(df1['B']-df1['B'].shift(-1))<0)
x = cond.groupby(df1['ref']).any()
print(x)
ref
r1 True
r2 True
r3 True
dtype: bool
cond=((df2['A']-df2['A'].shift(-1))*(df2['B']-df2['B'].shift(-1))<0)
x = cond.groupby(df2['ref']).any()
print(x)
ref
r1 True
r2 False
r3 True
dtype: bool
cond=((df3['A']-df3['A'].shift(-1))*(df13['B']-df3['B'].shift(-1))<0)
x = cond.groupby(df3['ref']).any()
print(x)
ref
r1 True
r2 False
r3 True
dtype: bool