所以我有A桌:
State Date
0 NY 8/4/18
1 NY 4/3/18
2 GA 2/1/18
3 GA 10/11/18如表B所示:
State Date
0 NY 5/2/18
1 GA 3/4/18我希望将表B中的日期值与表A中的日期进行比较;如果表A中的日期为对应状态的表B中的日期,则将该行放在Dataframe 1中。否则,它将位于Dataframe 2中。结果集:
结果集A:
State Date
0 NY 4/3/18
1 GA 2/1/18结果集B:
State Date
2 NY 8/4/18
3 GA 10/11/18比较这些列相当简单,我可以使用numpy,但我不确定如何将true和false划分为两个不同的数据集。
发布于 2020-12-16 17:40:10
您可以使用merge表A和B来比较Date类似的列,以便创建一个布尔掩码,表示表A中的日期是对应状态的表B中的日期的条件,最后使用此掩码过滤行:
d = A.merge(B, on='State', how='left')
m = pd.to_datetime(d['Date_x']) <= pd.to_datetime(d['Date_y'])
df1, df2 = A[m].copy(), A[~m].copy()结果:
print(df1)
State Date
1 NY 4/3/18
2 GA 2/1/18
print(df2)
State Date
0 NY 8/4/18
3 GA 10/11/18https://stackoverflow.com/questions/65327827
复制相似问题