擅长:python、mysql、java
<p>我做了一些操作:</p>
<p>(1)使用正则表达式将项目提取到列表中,并反转列表顺序</p>
<p>(2)在“代码3”中查找唯一项的索引</p>
<p>(3)根据索引计算“代码1”和“代码2”中的相应值</p>
<pre><code>import re
df = pd.DataFrame({"code1": ["A123; A321; B478; B678; C567", "A321; A821; B448; B698; C577"], "code2": ["A; B5; N5; R4; H5", "A3; B; N; R7; H2"],"code3": ["A445; A323; A323; A445; A659", "A328; A328; A621; A442; A621"]}, index=[0, 1], )
for col in df.columns:
df[col] = df[col].apply(lambda x: re.findall(r'\w+', x)).apply(lambda x: x[::-1])
df['idx'] = df['code3'].apply(lambda x: [x.index(e) for e in set(x)])
df['code4'] = df.apply(lambda row: [row['code1'][i] + ' ' + row['code2'][i] for i in row['idx']], axis=1)
</code></pre>
<p>输出测向</p>
<pre><code> code1 code2 code3 idx code4
0 [C567, B678, B478, A321, A123] [H5, R4, N5, B5, A] [A659, A445, A323, A323, A445] [0, 2, 1] [C567 H5, B478 N5, B678 R4]
1 [C577, B698, B448, A821, A321] [H2, R7, N, B, A3] [A621, A442, A621, A328, A328] [0, 3, 1] [C577 H2, A821 B, B698 R7]
</code></pre>