Python连接两个数据帧,以查找在相应行中具有不同值的相同行值
我有以下格式的数据帧:Python连接两个数据帧,以查找在相应行中具有不同值的相同行值,python,pandas,dataframe,date,group-by,Python,Pandas,Dataframe,Date,Group By,我有以下格式的数据帧: #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, 1
#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']})
我想加入他们,按他们的时间和日期订购
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
?与以下一起使用:
用于:
concat然后排序值:
pd.concat((m,f)).sort_值(['TS','date'])
?concat然后排序值:pd.concat((m,f)).sort_值(['TS','date'])
?@jezerael按照你的要求做了,但我想要的是,具有相同TS编号和连续日期值的值需要一个接一个地来。我还尝试了result.groupby('TRAINSET').apply(lambda x:x.sort_值(['date']),但这并没有给我适当的结果well@DevarshiGoswami-hmmm,在实际数据中不起作用,因为203和203之间有时有空格,有时没有空格TC@jezerael按你的要求做了但我要的是这个,具有相同TS编号和连续日期值的值需要依次出现。我还尝试了result.groupby('TRAINSET').apply(lambda x:x.sort_值(['date']),但这并没有给我适当的结果well@DevarshiGoswami-hmmm,在实际数据中不工作,因为203和TC之间有时有空格,有时没有空格
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