Python - объединить два кадра данных, чтобы найти одинаковые значения строк, имеющие разные значения в соответствующих строках - PullRequest
1 голос
/ 27 января 2020

У меня есть фрейм данных следующего формата:

#join two dataframes to find same row values having different values in corresponding rows
f = pd.DataFrame({'TS': [101, 102,103], 'date': ['2012-01-18','2014-11-16','2016-08-20'] , 'lbl': ['f', 'f', 'f']})
m = pd.DataFrame({'TS': [101, 101,104], 'date': ['2012-05-08','2013-01-26','2016-04-30'] , 'lbl': ['m', 'm', 'm']})

Я хочу присоединиться к ним и упорядочить их по их TS и датам ie Мне нужно знать, какое вхождение TS идет после другого:

конечный df после операции будет выглядеть следующим образом:

TS      date     lbl
101   2012-01-08  f
101   2013-05-08  m
101   2013-01-26  m
102   2014-11-16  f
103   2016-08-20  f
104   2016-04-30  m

Я пытался

result2=result.sort_values(['TS','date'],ascending=[True,True])

, но это дает мне соответствующие результаты, я хочу, чтобы те же значения TS с различными значения даты вместе. Я использую groupby?

1 Ответ

0 голосов
/ 27 января 2020

Использование concat с DataFrame.sort_values:

result = pd.concat([f,m], ignore_index=True).sort_values(['TS','date'])
print (result)
    TS        date lbl
0  101  2012-01-18   f
3  101  2012-05-08   m
4  101  2013-01-26   m
1  102  2014-11-16   f
2  103  2016-08-20   f
5  104  2016-04-30   m
...