我有两个索引数据框:
总数据
quantity
customer brand product
C1 B1 P1 100
C1 B1 P2 10
C1 B2 P3 50
C2 B1 P1 75
C2 B2 P3 5
和产品:
price
brand product
B1 P1 5
B1 P2 20
B2 P3 7
当我打印total_data.quantity * products.price
时,我得到:
quantity
customer brand product
C1 B1 P1 500
C1 B1 P2 200
C1 B2 P3 350
C2 B1 P1 375
C2 B2 P3 35
但我想将此列分配给 total_data
于是,我尝试了两种方法:
总数据['收入'] = 总数据.数量 * 产品.价格
和
total_data.assign(收入=total_data.quantity * products.price)
但在这两种情况下,我都在 venue
列中得到了 NaN
值。
有解决办法吗?
最佳答案
这里我将如何组合数据:
df = total_data.merge(products, 'left')
df['income'] = df['quantity'] * df['price']
输出:
customer brand product quantity price income
0 C1 B1 P1 100 5 500
1 C1 B1 P2 10 20 200
2 C1 B2 P3 50 7 350
3 C2 B1 P1 75 5 375
4 C2 B2 P3 5 7 35
或
total_data['income'] = total_data['quantity'] * total_data.merge(products, 'left')['price']
对于:
customer brand product quantity income
0 C1 B1 P1 100 500
1 C1 B1 P2 10 200
2 C1 B2 P3 50 350
3 C2 B1 P1 75 375
4 C2 B2 P3 5 35
关于python - 通过将不同数据帧中具有相同索引的两列相乘来添加新列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59316295/