pandas: противоречивый вывод с использованием sort_values - PullRequest
0 голосов
/ 18 февраля 2020

Я вижу различия в моем выводе при использовании 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...