擅长:python、mysql、java
<ul>
<li>使用<code>str.split</code>将<code>Phone</code>列转换为列表</li>
<li>使用<code>str.len()</code>查找每个列表的长度。我们将使用它来分解<code>'Name'</code>列</li>
<li>把所有的清单放在一起。确保过滤掉长度为零的列表</li>
<li>使用<code>repeat</code>分解<code>'Name'</code></li>
<li>创建一个字典,其中键是电话号码,值是姓名</li>
<li>创建一个<code>d1</code>的副本,在这里我们使用<code>map</code>和我们创建的新字典添加了新列。你知道吗</li>
</ul>
<hr/>
<pre><code>p = d2.Phone.str.split(',')
p = p[p.astype(bool)]
l = p.str.len()
p2 = np.concatenate(p.values).astype(int)
nm = d2.Name.repeat(l)
m = dict(zip(p2, nm))
df = d1.assign(RecipientName=d1.Recipient.map(m))
print(df)
Sender Recipient RecipientName
0 Adam 123 Winnie
1 Alex 234 Winnie
2 John 123 Winnie
3 Adam 888 Celeste
df.to_csv('out.csv', sep=';', header=None)
Sender;Recipient;RecipientName
Adam;123;Winnie
Alex;234;Winnie
John;123;Winnie
Adam;888;Celeste
</code></pre>