2024-05-03 04:31:58 发布
网友
df_1 product_name amount price a 1 1 b 2 2 c 3 3 d 4 4 df_2 product_name amount a 1 b 2
以下是pandas中两个数据帧的示例。在
我想用product_names减去amount 像a的乘积是amount0,而b的乘积也为0。。。具有product_name列值。在
product_names
amount
a
b
product_name
谢谢你的时间
选项1 使用df.isin利用您的数据:
df.isin
mask = a.product_name.isin(b.product_name) a.loc[mask, 'amount'] = 0 a product_name amount price 0 a 0 1 1 b 0 2 2 c 3 3 3 d 4 4
选项2set_index+reindex+subtract。稍微更健壮,不设置为0:
set_index
reindex
subtract
0
你也可以合并然后做减法
df = df1.merge(df2,how='left',on='product_name',suffixes=('','R')) df.amount = df.amount - df.amountR.fillna(0) product_name amount price amountR 0 a 0.0 1 1.0 1 b 0.0 2 2.0 2 c 3.0 3 NaN 3 d 4.0 4 NaN
假设你有
数据框1
product_name | amount | price a 1 1 b 2 2 c 3 3 d 4 4
东风2
可以使用set_index将product_name设置为df_1和df_2的索引,然后使用fill_value=0的subtract()来维护两个数据帧中不存在的任何值。在
df_1.set_index('product_name').subtract(df_2.set_index('product_name'), fill_value=0).reset_index()
上面的代码产生
product_name | amount | price a 0.0 1.0 b 0.0 2.0 c 3.0 3.0 d 4.0 4.0
这个问题非常类似于subtracting two dataframes
选项1
使用
df.isin
利用您的数据:选项2
^{pr2}$set_index
+reindex
+subtract
。稍微更健壮,不设置为0
:你也可以合并然后做减法
假设你有
数据框1
东风2
^{pr2}$可以使用set_index将product_name设置为df_1和df_2的索引,然后使用fill_value=0的subtract()来维护两个数据帧中不存在的任何值。在
上面的代码产生
这个问题非常类似于subtracting two dataframes
相关问题 更多 >
编程相关推荐