擅长:python、mysql、java
<p>这里有一个不需要<code>.apply()</code>的选项。它假设我们面对的是21世纪的岁月,不确定这是否对你有用。它还将月份存储为一个数字,这可能很有用,如果没有,您可以删除该位。你知道吗</p>
<pre><code>import pandas as pd
import re
import datetime
# Data setup.
data = pd.DataFrame(['Dec \'18 (HOZ18)', 'Jan \'19 (HOF19)', 'Feb \'19 (HOG19)'], columns = ['string'])
# Extract the month number using regex, then map it to a month number.
data['month_number'] = [datetime.datetime.strptime(re.sub('\s\'.*', '', i), '%b').month for i in data['string']]
# Extract the year, prepend '20' and store as an integer.
data['year'] = [int('20' + re.search('\d\d', i).group(0)) for i in data['string']]
print(data)
</code></pre>
<p>给予:</p>
<pre><code> string month_number year
0 Dec '18 (HOZ18) 12 2018
1 Jan '19 (HOF19) 1 2019
2 Feb '19 (HOG19) 2 2019
</code></pre>