【发布时间】:2018-07-29 06:36:00
【问题描述】:
这个问题包含 3 个单独的数据框。 df1 代表产品 1,2,3 的 'Total',包含 'value1', 'value2' df2代表产品1、2、3的'Customer1',包含'value1'、'value2' df3代表产品1、2、3的'Customer2',包含'value1'、'value2'
df2 & df3 本质上是 df1 的子集。
我想创建另一个数据框,从 df1 中减去 df2&df3 并标记这个 df4。我希望 df4 成为“市场”列中的“剩余客户”。
这是我到目前为止所做的
import pandas as pd
d1 = {'Market': ['Total', 'Total','Total'], 'Product Code': [1, 2, 3],
'Value1':[10, 20, 30], 'Value2':[5, 15, 25]}
df1 = pd.DataFrame(data=d1)
df1
d2 = {'Market': ['Customer1', 'Customer1','Customer1'], 'Product Code': [1,
2, 3], 'Value1':[3, 14, 10], 'Value2':[2, 4, 6]}
df2 = pd.DataFrame(data=d2)
df2
d3 = {'Market': ['Customer2', 'Customer2','Customer2'], 'Product Code': [1,
2, 3], 'Value1':[3, 3, 4], 'Value2':[2, 6, 10]}
df3 = pd.DataFrame(data=d3)
df3
这会产生以下结果..
Market Product Code Value1 Value2
0 Total 1 10 5
1 Total 2 20 15
2 Total 3 30 25
Market Product Code Value1 Value2
0 Customer1 1 3 2
1 Customer1 2 14 4
2 Customer1 3 10 6
Market Product Code Value1 Value2
0 Customer2 1 3 2
1 Customer2 2 3 6
2 Customer2 3 4 10
要创建 df4,我尝试使用以下代码并收到错误“TypeError: unsupported operand type(s) for -: 'str' and 'str'' 有人可以帮忙吗?
df4 = df1-(df2+df3)
print(df4)
【问题讨论】:
标签: python python-3.x pandas