我想使用从excel电子表格中提取的工作表名称列中的特定模式进行提取,并仅从结果列表中检索最后一个结果。
例如:
"<Worksheet ""2012"">"
"<Worksheet ""2012"">"
"<Worksheet ""2012"">"
"<Worksheet ""2012 - 2013"">"
"<Worksheet ""2012 - 13"">"
"<Worksheet ""2011-2012"">"
"<Worksheet ""2011-2012"">"
"<Worksheet ""2011-2012"">"
"<Worksheet ""2011-2012"">"
"<Worksheet ""2011-2012"">"
"<Worksheet ""2011-2012"">"
"<Worksheet ""2011-2012"">"
"<Worksheet ""2011-2012"">"
"<Worksheet ""2011-2012"">"
"<Worksheet ""2011-2012"">"
我想从工作表专栏中提取2011-2012的12个例子。
我想使用以下代码来提取与模式匹配的最后两位数,但是我收到错误: 只能使用MultiIndex
进行元组索引df['worksheet'].str.findall('\d{2}')[:,-1]
如何使用工作表列中的模式正确提取并仅检索最后一个实例?
结果如下:
12
12
12
13
13
12
12
12
12
12
12
12
12
12
12
答案 0 :(得分:2)
使用.str
访问者,您可以使用索引或使用get
方法访问列表的某些部分。
我认为你在寻找:
df['worksheet'] = df['worksheet'].str.findall('\d{2}').str[-1]
输出:
0 12
1 12
2 12
3 13
4 13
5 12
6 12
7 12
8 12
9 12
10 12
11 12
12 12
13 12
14 12
dtype: object
答案 1 :(得分:0)
你可以这样做:
df['worksheet'] = df['worksheet'].astype(str).str[-4:-2]
答案 2 :(得分:0)
您可以使用地图访问findall结果中的列表,如:
df['worksheet'].str.findall('\d{2}').map(lambda x: x[-1])
import pandas as pd
import math
df = pd.DataFrame([
"<Worksheet ""2012"">",
"<Worksheet ""2012"">",
"<Worksheet ""2012"">",
"<Worksheet ""2012 - 2013"">",
"<Worksheet ""2012 - 13"">",
"<Worksheet ""2011-2012"">",
"<Worksheet ""2011-2012"">",
"<Worksheet ""2011-2012"">",
"<Worksheet ""2011-2012"">",
"<Worksheet ""2011-2012"">",
"<Worksheet ""2011-2012"">",
"<Worksheet ""2011-2012"">",
"<Worksheet ""2011-2012"">",
"<Worksheet ""2011-2012"">",
"<Worksheet ""2011-2012"">",
], columns=['worksheet'])
print(df)
print(df['worksheet'].str.findall('\d{2}').map(lambda x: x[-1]))
worksheet
0 <Worksheet 2012>
1 <Worksheet 2012>
2 <Worksheet 2012>
3 <Worksheet 2012 - 2013>
4 <Worksheet 2012 - 13>
5 <Worksheet 2011-2012>
6 <Worksheet 2011-2012>
7 <Worksheet 2011-2012>
8 <Worksheet 2011-2012>
9 <Worksheet 2011-2012>
10 <Worksheet 2011-2012>
11 <Worksheet 2011-2012>
12 <Worksheet 2011-2012>
13 <Worksheet 2011-2012>
14 <Worksheet 2011-2012>
0 12
1 12
2 12
3 13
4 13
5 12
6 12
7 12
8 12
9 12
10 12
11 12
12 12
13 12
14 12
Name: worksheet, dtype: object