擅长:python、mysql、java
<p>IIUC,您可以使用字典,然后使用<code>stack</code>和<code>map</code>,然后沿时间索引重新加入</p>
<pre><code>map_dict = { 'house' : [20, 10]
, 'bank' : [5, 1]
, 'atm' : [3, 1]
, 'pharmacy' : [10, 5] }
df1 = df.set_index('time').join(df.set_index("time").stack().map(map_dict).unstack()\
.rename(
columns=lambda x: x.replace("case", "p")
),how='outer')
case1 case2 case3 p1 p2 p3
time
5 house bank atm [20, 10] [5, 1] [3, 1]
3 bank house pharmacy [5, 1] [20, 10] [10, 5]
10 bank bank atm [5, 1] [5, 1] [3, 1]
20 house pharmacy house [20, 10] [10, 5] [20, 10]
</code></pre>