<h3>源数据</h3>
<pre><code>dd1 = {'10/11': {'A': 30, 'B': 10, 'C': 5, 'D': 15},
'11/11': {'A': 12, 'B': 5, 'C': 25, 'D': 10},
'12/11': {'A': 10, 'B': 15, 'C': 10, 'D': 18}}
dd2 = {'Item': {'10/11': 'A,D', '11/11': 'A,B,C', '12/11': 'A'},
'A.unit': {'10/11': 5, '11/11': 10, '12/11': 20},
'B.Unit': {'10/11': 0, '11/11': 10, '12/11': 0},
'C.Unit': {'10/11': 0, '11/11': 5, '12/11': 0},
'D.Unit': {'10/11': 12, '11/11': 0, '12/11': 0}}
df1 = pd.DataFrame.from_dict(dd1)
df2 = pd.DataFrame.from_dict(dd2)
df1
Out[1]:
10/11 11/11 12/11
A 30 12 10
B 10 5 15
C 5 25 10
D 15 10 18
df2
Out[2]:
Item A.unit B.Unit C.Unit D.Unit
10/11 A,D 5 0 0 12
11/11 A,B,C 10 10 5 0
12/11 A 20 0 0 0
</code></pre>
<h3>处理数据</h3>
<pre><code>df2.merge(df1.T.rename(columns = {c: str(c)+'.Profit' for c in df1.T.columns}), left_index = True, right_index = True)
Out[3]:
Item A.unit B.Unit C.Unit D.Unit A.Profit B.Profit C.Profit D.Profit
Date
10/11 A,D 5 0 0 12 30 10 5 15
11/11 A,B,C 10 10 5 0 12 5 25 10
12/11 A 20 0 0 0 10 15 10 18
</code></pre>