[英]How to create new dataframe with pandas based on columns of other dataframes
[英]How to create 2 new dataframes by comparing columns based on a condition for 2 other dataframes?
所以我有这样的表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 中的日期 <= 对应 State 的表 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 划分为 2 个不同的数据集的方法。
您可以merge
表A
和B
,然后使用<=
来比较Date
like 列,以创建一个 boolean 掩码,表示表 A 中的日期 <= 表 B 中相应 State 的日期的条件,最后使用此掩码过滤行:
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/18
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.