擅长:python、mysql、java
<p>假设此输入数据帧:</p>
<pre><code>df = pd.DataFrame({'col1': ['1 in', '2 mm', '3 ft', '4 yd', '5 m', '6cm']})
</code></pre>
<p>您可以使用正则表达式查找公制单位,并在此条件下拆分:</p>
<pre><code>metric = df.col1.str.match('\d+\s*[cm]?m')
pd.concat([df.where(metric, '').add_suffix('_metric'),
df.where(~metric, '').add_suffix('_imperial')],
axis=1)
</code></pre>
<p>在这里,正则表达式匹配一个后跟cm/m/mm的数字,您可以根据实际用例进行更新。
在<code>where</code>中,我用空字符串<code>''</code>替换了它,但是您可以删除它以获得NaN,或者如果愿意的话,可以用任何其他内容替换它</p>
<p>输出:</p>
<pre><code> col1_metric col1_imperial
0 1 in
1 2 mm
2 3 ft
3 4 yd
4 5 m
5 6cm
</code></pre>