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)