【发布时间】:2021-10-22 18:41:06
【问题描述】:
所以,我有以下两个数据帧,我的理想输出是让 open_orders 减少 cancel_orders,这样我就知道我有多少 open_orders。
期望的输出:
df_total_orders
order_id business_symbol open_orders
0 a1b2c3111111 AA 0.0
1 4kl3l2242244 AAA 0.0
2 21312a224144 BBB 0.0
3 124f32rv2323 CCC 0.0
4 2412dfe21edf DDD 0.0
5555
我现在拥有的:
df_add_orders (this dataframe contains duplicates in the order id column)
order_id business_symbol open_orders
0 a1b2c3111111 AA 100.0
1 4kl3l2242244 AAA 1000.0
2 21312a224144 BBB 1000.0
3 124f32rv2323 CCC 1000.0
4 2412dfe21edf DDD 1000.0
10000
df_cancel_orders (this dataframe contains duplicates in the order id column)
order_id cancel_orders
0 a1b2c3111111 100.0
1 4kl3l2242244 1000.0
2 21312a224144 1000.0
3 124f32rv2323 1000.0
4 2412dfe21edf 1000.0
4000
我正在使用以下 group by 来获取未结订单总数,但它会在输出中删除我的符号。
df_add_orders_group = df_add_orders.groupby(['order_id'], as_index=False)['open_orders'].sum()
df_add_orders_group
order_id open_orders
0 a1b2c3111111 110.0
1 4kl3l2242244 1200.0
2 21312a224144 1500.0
3 124f32rv2323 1500.0
4 2412dfe21edf 1500.0
5000
然后我减去已关闭的订单
df_cancel_orders_group = df_cancel_orders.groupby(['order_id'], as_index=False)['cancel_orders'].sum()
但我想保留符号,以便比较未结订单的总数,我需要一些方法将减法的结果与主 df_add_orders 合并,并清理 order_id 以对重复项求和。
【问题讨论】:
-
当您的
df_add_orders和df_cancel_orders完全相同时,您如何获得该输出?你的输出不应该在open_orders中全为零吗? -
这是一个例子,但是在这种情况下它是零。我更新了。
-
这能回答你的问题吗? "Anti-merge" in pandas (Python)