[英]How to slice a findall result from Pandas, Python
我想使用特定模式從一列從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
使用.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
您可以這樣做:
df['worksheet'] = df['worksheet'].astype(str).str[-4:-2]
您可以使用map來訪問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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.