Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/314.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从Pandas、Python中分割findall结果_Python_Regex_Pandas - Fatal编程技术网

如何从Pandas、Python中分割findall结果

如何从Pandas、Python中分割findall结果,python,regex,pandas,Python,Regex,Pandas,我想使用特定模式从从excel电子表格中提取的一列工作表名称中提取,并且只从结果列表中检索最后一个结果 例如: "<Worksheet ""2012"">" "<Worksheet ""2012"">" "<Worksheet ""2012"">" "<Worksheet ""2012 - 2013"">" "<Worksheet ""2012 - 13"">" "<Worksheet ""2011-2012"">" "&l

我想使用特定模式从从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"">"
如何使用工作表列中的模式正确提取并仅检索最后一个实例

结果应该如下所示:

12
12
12
13
13
12
12
12
12
12
12
12
12
12
12
你可以这样做:

df['worksheet'] = df['worksheet'].astype(str).str[-4:-2]
你可以这样做:

df['worksheet'] = df['worksheet'].astype(str).str[-4:-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

使用
.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

您可以使用map访问findall结果中的列表,如:

代码: 测试代码:
将熊猫作为pd导入
输入数学
df=pd.DataFrame([
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
],列=[“工作表”])
打印(df)
打印(df['sheet'].str.findall('\d{2}').map(lambda x:x[-1]))
结果:
工作表
0
1.
2.
3.
4.
5.
6.
7.
8.
9
10
11
12
13
14
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
名称:工作表,数据类型:对象

您可以使用map访问findall结果中的列表,如:

代码: 测试代码:
将熊猫作为pd导入
输入数学
df=pd.DataFrame([
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
],列=[“工作表”])
打印(df)
打印(df['sheet'].str.findall('\d{2}').map(lambda x:x[-1]))
结果:
工作表
0
1.
2.
3.
4.
5.
6.
7.
8.
9
10
11
12
13
14
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
名称:工作表,数据类型:对象
                  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