擅长:python、mysql、java
<p>使用<a href="https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.Series.str.extractall.html" rel="nofollow noreferrer">pandas.extractall</a>提取到各个列中</p>
<pre><code>import pandas as pd
df = pd.DataFrame(dict(
col1 = ['Coke Can 300ml', 'Bottle 800ml', 'Cup', 'Bucket 2000ml']))
print(df.to_markdown())
| | col1 |
|---:|:---------------|
| 0 | Coke Can 300ml |
| 1 | Bottle 800ml |
| 2 | Cup |
| 3 | Bucket 2000ml |
import re
df=df['col1'].str.extractall('([a-z ]+)(\d+)?([a-z]+)?',flags=re.I)
print(df.to_markdown())
| | 0 | 1 | 2 |
|:-------|:---------|-----:|:----|
| (0, 0) | Coke Can | 300 | ml |
| (1, 0) | Bottle | 800 | ml |
| (2, 0) | Cup | nan | nan |
| (3, 0) | Bucket | 2000 | ml |
</code></pre>