Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.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
python中是否有任何方法可以从数据帧中搜索模式并提取其相应的值?_Python_Regex_Pandas_Dataframe - Fatal编程技术网

python中是否有任何方法可以从数据帧中搜索模式并提取其相应的值?

python中是否有任何方法可以从数据帧中搜索模式并提取其相应的值?,python,regex,pandas,dataframe,Python,Regex,Pandas,Dataframe,我有一个这样的数据帧 Area of Power Cons. Device Name 2016-09-02 2016-09-03 0 01.11KVA VCB-I South SJ 11 South Zone Con 32328.19 33157.12 1 02.11KVA VCB-II Sout SJ 11 South Zone Con 43879.94 45152.77 2 03.11 KVA V

我有一个这样的数据帧

     Area of Power Cons.           Device Name  2016-09-02   2016-09-03  
0   01.11KVA VCB-I South  SJ 11 South Zone Con    32328.19     33157.12   
1   02.11KVA VCB-II Sout  SJ 11 South Zone Con    43879.94     45152.77   
2   03.11 KVA VCB-I Nort  SJ 11 North Zone Con    30132.74     29507.58   
3   04.11 KVA VCB-II Nor  SJ 11 North Zone Con    38632.45 -16448377.89   
4   05.MAIN INCOMER-I So  SJ 11 South Zone Con    31509.76     32313.60   
5   06.MAIN INCOMER-II S  SJ 11 South Zone Con    42617.22     43841.66   
6   07.MAIN INCOMER-I No  SJ 11 North Zone Con    29284.61     28673.92   
7   08.MAIN INCOMER II N  SJ 11 North Zone Con    37391.87     36786.43   
8     22.BLOW ROOM South  SJ 11 South Zone Con     1909.47      1908.40   
9     23.BLOW ROOM North  SJ 11 North Zone Con     1437.14      1369.04   
10      24.CARDING South  SJ 11 South Zone Con     3962.26      3989.94   
11      25.CARDING-North  SJ 11 North Zone Con     3970.63      3706.69   
12   26.PREPRATORY-South  SJ 11 South Zone Con     2456.72      2576.88   
13   27.PREPRATORY-North  SJ 11 North Zone Con     2372.61      2376.38   
14     28.RING FRAME 1-5  SJ 11 South Zone Con     7384.83      7595.06   
15    29.RING FRAME 6-10  SJ 11 South Zone Con     7111.55      7313.15   
16   30.RING FRAME 11-15  SJ 11 South Zone Con     6821.89      7209.26   
17   31.RING FRAME 16-20  SJ 11 South Zone Con     6049.12      6425.47   
18   32.RING FRAME 21-25  SJ 11 North Zone Con     6481.04      6070.30   
19   33.RING FRAME 26-30  SJ 11 North Zone Con     6471.42      6160.90   
20   34.RING FRAME 31-35  SJ 11 North Zone Con     6619.86      6520.43   
21   35.RING FRAME 36-40  SJ 11 North Zone Con     6200.00      6200.00   
22    35.LINC CONER 1-10  SJ 11 South Zone Con     2292.18      2348.64   
23   36.LINC CONER 11-20  SJ 11 South Zone Con     2905.96      2943.62   
24   37.LINC CONER 21-30  SJ 11 North Zone Con     2181.58      2118.38   
25   38.LINC CONER 31-40  SJ 11 North Zone Con     2752.92      2763.26 
我想搜索包含环形框架的行,并获取其各自的值

我试过这个:

df = data[15:22]
但是我想搜索名字。提前感谢。

您可以使用掩码,首先将所有值转换为,然后使用:

另一个具有apply的解决方案,但仅当没有NaN值时才有效:

如果需要提取值,请使用:

如果所有值均为大写:

print (df['Area of Power Cons.'].str.extract('RING FRAME (.*)'))
可以与掩码一起使用,其中首先将所有值转换为,然后使用:

另一个具有apply的解决方案,但仅当没有NaN值时才有效:

如果需要提取值,请使用:

如果所有值均为大写:

print (df['Area of Power Cons.'].str.extract('RING FRAME (.*)'))

我认为正则表达式在这里也会有帮助。您可以指定使用它进行搜索的规则

例如,您可以执行以下操作:

import re 
m = re.search('*RING FRAME*')
m.group(0)
请注意,*通配符是贪婪的,因此它将考虑所有前面和后面的符号。我不知道如何存储字符串以及它们是否分开,但您可以尝试使用re。 顺便说一下,它们是一项重要的python技能,尽管我自己还没有经常使用它们


您可以在官方python文档中找到关于正则表达式的更多信息:

我认为正则表达式在这里也会有所帮助。您可以指定使用它进行搜索的规则

例如,您可以执行以下操作:

import re 
m = re.search('*RING FRAME*')
m.group(0)
请注意,*通配符是贪婪的,因此它将考虑所有前面和后面的符号。我不知道如何存储字符串以及它们是否分开,但您可以尝试使用re。 顺便说一下,它们是一项重要的python技能,尽管我自己还没有经常使用它们


您可以在官方python文档中找到关于正则表达式的更多信息:

当我尝试布尔索引时,它给出了一个ValueError作为ValueError:cannot index with vector contain NA/NaN valueshi jezrael,我还有一个问题。假设,我只想过滤环帧1-5的数据,那么我们怎么做呢?希望你能帮忙。谢谢。您需要打印df[df[“电源开关区域”。].str.lower.str.包含“环框1-5”,na=False],那么打印df[df[“电源开关区域”。].applylambda x:“环框1-5”在x.lower中]?-字符与数据中的字符相同?好的,所以需要打印df[df['Area of Power Cons.].str.lower.str.contains'ring frame\1-5\',na=False]当我尝试布尔索引时,它给出了一个ValueError作为ValueError:无法使用包含na/NaN valueshi jezrael的向量进行索引,我还有一个问题。假设,我只想过滤环帧1-5的数据,那么我们怎么做呢?希望你能帮忙。谢谢。您需要打印df[df[“电源开关区域”。].str.lower.str.包含“环框1-5”,na=False],那么打印df[df[“电源开关区域”。].applylambda x:“环框1-5”在x.lower中]?-字符与数据中的字符相同?好的,所以需要打印df[df['Area of Power Cons.].str.lower.str.contains'ring frame\1-5\',na=False]谢谢您接受最后一个问题。但您的问题似乎将被关闭,但您可以添加此代码df['Area'].str.extract'TFO.*'和一些文本,您可以尝试这样做,但这是错误的输出,用于阻止关闭。谢谢,祝你今天愉快!谢谢耶斯雷尔帮助我。祝你今天愉快谢谢你接受你的最后一个问题。但您的问题似乎将被关闭,但您可以添加此代码df['Area'].str.extract'TFO.*'和一些文本,您可以尝试这样做,但这是错误的输出,用于阻止关闭。谢谢,祝你今天愉快!谢谢耶斯雷尔帮助我。祝你今天愉快
import re 
m = re.search('*RING FRAME*')
m.group(0)