擅长:python、mysql、java
<p>您可以使用正则表达式将文本拆分为新列,然后将字符串转换为数字,例如:</p>
<pre><code>x = {'a': ['11 - 18 [1.3]','12 - 17 [2.8]','13 - 18 [3.3]','14 - 16 [4.7]','8 - 48 [5.3]'],
'b': [13.0, 11.0, 12.0, 14.0, 15.0]}
df = pd.DataFrame(x)
df[['a1', 'a2']] = df['a'].str.split(' - ', expand=True)
df[['a2', 'a3']] = df['a2'].str.split(' \[', expand=True)
df['a3'] = df['a3'].str.replace(']', '')
df[['a1', 'a2', 'a3']] = df[['a1', 'a2', 'a3']].astype(float)
</code></pre>
<p>要获得:</p>
<pre><code> a b a1 a2 a3
0 11 - 18 [1.3] 13.0 11.0 18.0 1.3
1 12 - 17 [2.8] 11.0 12.0 17.0 2.8
2 13 - 18 [3.3] 12.0 13.0 18.0 3.3
3 14 - 16 [4.7] 14.0 14.0 16.0 4.7
4 8 - 48 [5.3] 15.0 8.0 48.0 5.3
</code></pre>