- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章Python extract及contains方法代码实例由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
一,extract方法的使用 。
extract函数主要是对于数据进行提取。场景一般对于DataFrame中的一列中的数据进行提取的场合比较多.
例如一列中包含了很长的字段,我们希望在这些字段中提取出我们想要的字段时,就可以通过extract方法进行数据的提取了.
好了,废话不多说直接上代码.
数据源 。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
序号 姓名 服务卡卡号 消费地点 消费时间 理赔金额(元) 交易明细 数量
1 张三 8100001 我爱花钱连锁有限公司 2020/3/1 8:02 605 珍牡肾骨胶囊(珍泉)0.63g*48粒*3盒 1
2 张三 8100001 我爱花钱连锁有限公司 2020/3/1 8:02 1225 桂龙药膏(葛洪)202g*6瓶 1
3 张三 8100001 我爱花钱连锁有限公司 2020/3/2 10:58 27 胆宁片(上药牌)0.36g*60片/瓶 1
4 李四 8100002 我爱花钱连锁有限公司 2020/3/1 9:20 30 阿莫西林胶囊0.5g*24粒/盒 3
5 李四 8100002 我爱花钱连锁有限公司 2020/3/1 9:20 5 氨咖黄敏胶囊(康麦尔)12粒/盒 1
6 李四 8100002 我爱花钱连锁有限公司 2020/3/4 14:26 51 阿归养血口服液(中联)10ml*24支/盒 1
7 李四 8100002 我爱花钱连锁有限公司 2020/3/4 14:26 5 氨咖黄敏胶囊(康麦尔)12粒/盒 1
8 李四 8100002 我爱花钱连锁有限公司 2020/3/9 17:56 28 胆宁片(上药牌)0.36g*60片/瓶 1
9 李四 8100002 我爱花钱连锁有限公司 2020/3/19 11:19 56 柴石退热颗粒(德众)8g*6袋/盒 1
10 李四 8100002 我爱花钱连锁有限公司 2020/3/21 16:04 68 醒脾胶囊0.3g*30粒 1
11 李四 8100002 我爱花钱连锁有限公司 2020/3/31 10:00 60 小败毒膏(东方博爱)10g*8袋 1
12 王五 8100003 我爱花钱连锁有限公司 2020/3/1 10:43 114 枣仁安神液10ml*7支 1
13 王五 8100003 我爱花钱连锁有限公司 2020/3/17 10:40 118 益气维血颗粒(红珊瑚)10g*15袋 1
14 王五 8100003 我爱花钱连锁有限公司 2020/3/21 8:19 615 比卡鲁胺片(双益安)50mg*14s*2板 1
15 王五 8100003 我爱花钱连锁有限公司 2020/3/1 10:56 120 消痛贴膏(奇正)1.2g:2.5ml*10贴/盒 1
16 王五 8100003 我爱花钱连锁有限公司 2020/3/1 12:56 198 复方首乌地黄丸(修正)3g*10袋*3小盒 1
17 王五 8100003 我爱花钱连锁有限公司 2020/3/1 12:56 28 胆宁片(上药牌)0.36g*60片/瓶 1
18 王五 8100003 我爱花钱连锁有限公司 2020/3/1 13:53 256 河车大造丸(同仁堂)9g*10丸/盒 1
19 赵六 8100004 我爱花钱连锁有限公司 2020/3/1 14:52 7 复方氨酚烷胺片(新迪)12片/盒 1
20 赵六 8100004 我爱花钱连锁有限公司 2020/3/1 14:52 149 法莫替丁分散片20mg*36片/盒 1
21 赵六 8100004 我爱花钱连锁有限公司 2020/3/9 19:56 100 朱砂安神丸6g*10袋 1
22 赵六 8100004 我爱花钱连锁有限公司 2020/3/9 19:56 23 清热消炎宁片0.4g*24片/盒 1
23 赵六 8100004 我爱花钱连锁有限公司 2020/3/1 15:16 30 多酶片100s/盒 1
24 赵六 8100004 我爱花钱连锁有限公司 2020/3/1 15:16 1139 补肺丸(养无极)9g*10丸*16板 1
25 赵六 8100004 我爱花钱连锁有限公司 2020/3/5 17:25 170 补肾益寿片(恒修堂)0.4g*100片 1
26 赵六 8100004 我爱花钱连锁有限公司 2020/3/5 17:25 800 益安宁丸72丸*2瓶(每18丸重3.1g) 1
27 赵六 8100004 我爱花钱连锁有限公司 2020/3/9 17:39 800 益安宁丸72丸*2瓶(每18丸重3.1g) 1
28 赵六 8100004 我爱花钱连锁有限公司 2020/3/11 17:30 480 七十味珍珠丸(甘露)1g*6s 1
29 赵六 8100004 我爱花钱连锁有限公司 2020/3/22 16:58 1154 双参龙胶囊45盒装0.3g*24s*45盒 1
30 杨七 8100005 我爱花钱连锁有限公司 2020/3/1 16:54 100 朱砂安神丸6g*10袋 1
31 杨七 8100005 我爱花钱连锁有限公司 2020/3/12 20:53 14 消痔灵片0.3g*24片 1
32 杨七 8100005 我爱花钱连锁有限公司 2020/3/18 10:04 402 回元堂 固本回元口服液 20ml*24瓶20ml*24瓶 1
33 杨七 8100005 我爱花钱连锁有限公司 2020/3/21 11:18 847 伏立康唑分散片(复锐)0.2g*6s 1
34 杨七 8100005 我爱花钱连锁有限公司 2020/3/1 17:36 30 多酶片100s/盒 1
|
代码 。
这里是通过jupyter来分段显示的。第一次看我文章的小伙伴如果不了解jupyter可以在复制下面代码的时候把所有输出改成通过print()的方式输出 。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
|
#%%
import
pandas as pd
import
re
#需求:
# 1. 把交易明细分成明细跟规格两列并删除交易明细这列
# 2. 明细中把例如珍牡肾骨胶囊(珍泉)的作为明细,0.63g*48粒*3盒作为规格拆分提取
#读取源数据
df
=
pd.read_excel(
"./datas/extract案例演示数据.xlsx"
)
#%%
#提取交易明细这一列
get_column
=
df[
"交易明细"
]
#通过正则提取数据(?P<名字>)为固定写法给数据加新列名
df01
=
get_column.
str
.extract(R
"(?P<明细>[\u4E00-\u9FA5]+\(*[\u4E00-\u9FA5]+\)*)"
)
df02
=
get_column.
str
.extract(R
"(?P<规格>(?:0.|\w*)\w*\*\w*[\u4e00-\u9fa5](?:\S+|))"
)
#%%
#通过join函数合并2个DataFrame
join_data
=
df01.join(df02)
join_data
#%%
#删除原有交易明细数据
del
df[
"交易明细"
]
df
#%%
#二次合并,删除后交易明细的dataframe合并拆分后数据的dataframe
two_join
=
df.join(join_data)
#%%
#因为合并后存在排序问题,列名为汉字所以我通过loc方法进行的列名指定排序
#loc方法这里不再讲解,请参照loc,iloc篇章
result
=
two_join.loc[:,[
"序号"
,
"姓名"
,
"消费地点"
,
"消费时间"
,
"理赔金额(元)"
,
"明细"
,
"规格"
,
"数量"
]]
result
#%%
#输出到Excel
result.to_excel(
"./datas/extract_结果.xlsx"
,index
=
False
)
print
(
"文件写入完毕!!"
)
#%%
|
结果 。
二,contains方法的使用 。
contains对比extract而言更多的不是提取,而是一种筛选。有种想python中的in的关系.
只要查询的DataFrame的某列或者某行包含查询字符串的部分字段就可以匹配出所有匹配到的数据。当然可以直接传字符串也可以通过正则来进行筛选.
数据源 。
1
2
3
4
5
6
7
8
|
学员编号 学生姓名 学生年龄 手机号码 E-mail地址 家庭住址
101 刘鹏 18 13599713364 www.zhangsan@qq.com 江苏省苏州市工业园区津梁街
102 李四 20 15923796671 www.lisi.163.com 北京市朝阳区西北路石井街22幢
103 赵五 17 18655301183 www.zhaofive.yahoo.com 山东省烟台市芝罘区北大街55号
104 tony 30 15877563321 www.tonyliu.ibm.com 江苏省苏州市姑苏区山塘街177号
105 马云 47 15977560013 www.mayun.alibaba.com 浙江省杭州市西湖路110号1888
106 Jack 20 13677569901 www.jack123@qq.com 广东省深圳市南山区西丽1592幢12
107 tom 19 18622349971 www.tom456@qq.com 山东省青岛市人民路1234幢
|
代码:这里通过jupyter分段来显示结果 。
1
2
3
4
5
6
7
|
#%%
import
pandas as pd
import
re
df
=
pd.read_excel(
"./datas/Person_info1.xlsx"
)
#%%
#传入正则匹配只要包含的数据
df.loc[df[
"家庭住址"
].
str
.contains(r
"\d"
)]
|
结果 。
通过字符串筛选数据 。
1
2
3
4
5
|
#%%
#传入字符串,contains属于模糊查找.只要包含就筛选
df.loc[df[
"家庭住址"
].
str
.contains(r
"津梁街"
)]
#%%
df.loc[df[
"家庭住址"
].
str
.contains(
"江苏省"
)]
|
结果 。
另外contains可以二次多次运用。因为涉及到保密数据不方便展示复杂数据。大家可以先尝试按照上面的简单数据,先过滤出家庭地址,再过滤出来年龄.
当然也可以通过loc中的掩码来过滤。方法很多希望灵活应用.
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我.
原文链接:https://www.cnblogs.com/liupengpengg/p/13534757.html 。
最后此篇关于Python extract及contains方法代码实例的文章就讲到这里了,如果你想了解更多关于Python extract及contains方法代码实例的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
大家好,所有rdf/sparql开发人员。这是一个困扰了我一段时间的问题,但是自从发布rdf和sparql规范以来,似乎没人能准确回答这个问题。 为了说明这种情况,RDF定义了几种方法来处理资源的多值
我在我的应用程序中使用 Bootstrap ,现在遇到了一个大问题。问题是 .container 元素在 1360 px 的屏幕上具有 274px 的左右边距,这是相当大的。结果,一切看起来都被挤到了
我在删除Docker容器时遇到问题-当我使用前一个命令时,它不起作用(Docker报告了容器ID,但没有删除它)。后者起作用了。据我所知,Docker语法是相同的: C:\Users\user>doc
std::back_inserter 仅适用于带有 push_back 的容器,因此它不适用于 set 和 map 另一方面,std::inserter 适用于所有容器类型。那么我可以一直使用 std
我正在开发 Spring Boot + Redis 示例。在此示例中,我开发了一些自定义方法,这些方法基于 RoleName 提取详细信息。对于以下方法 userRepository.findByRo
在我的 Swift 应用程序中尝试实现 Google Tag Manager v5 时,我遇到了以下警告,这给我带来了一些麻烦: GoogleTagManager warning: No defaul
安装了新的 Laravel 8 项目并在加载第一个实例时,出现以下错误。这很奇怪,因为我把它放在一边,后来从 Laravel 5.8 -> 6 升级了另一个项目(工作正常),当我去检查网站时遇到了类似
我有以下测试代码,它只创建一个空的 hashmap (containers.map) 并在之后填充它: hashtable = containers.Map('KeyType','char','Va
我对它们之间的差异有一点了解,但是拥有专家意见将是很棒的。 Container-Optimized Google Compute Engine Images Google Container Engi
我会模板化一个函数,以便将它与 vector、set 或任何其他 STL 容器(具有正确的 API...)一起使用 我的函数当前原型(prototype)是: vector> f ( const ve
我正在尝试匹配包含和不包含某些字符串的 Pandas DataFrame 的行。例如: import pandas df = pandas.Series(['ab1', 'ab2', 'b2', 'c
我需要在一个非常庞大的全文索引数据库中找到一些文本,但我不知道在我的查询术语变体中使用什么更好。 我看过一些使用的例子 SELECT Foo.Bar FROM Foo WHERE
Traceback (most recent call last): File "demo.py", line 132, in `result = find_strawberry(image
我正在尝试编写一个函数,其中一列包含一个子字符串并且不包含另一个子字符串。 在下面的示例中,如果我的行包含“某些项目”并且不包含“开销”,我希望我的函数返回 1。 row| example strin
我试图在文本文件中 append 包含给定字符串集的任何行。我创建了一个测试文件,在其中放置了这些字符串之一。我的代码应该将文本文件中包含这些字符串之一的任何行打印在与文本文件中的上一行相同的行上。这
我正在尝试学习如何使用 std.container 中可用的各种容器结构,但我无法理解如何执行以下操作: 1) 如何创建一个空容器?例如,假设我有一个用户定义的类 Foo,并且想要创建一个应该包含 F
$contains: [1, 2] // @> [1, 2] (PG array contains operator) $contained: [1, 2] // <@ [1,
我看到 CSS 中使用了这种“div#container”语法,我想知道它是如何工作的。有人有它的资源吗? 最佳答案 除了作为上面提到的唯一引用之外,ID 还增加了特异性(我强烈建议您阅读这篇文章或一
我有一个生成很多子对象的应用程序,每个子对象都与一些全局应用程序对象一起工作,例如在全局应用程序注册表中注册自己,更新应用程序统计信息等。 应用程序应该如何将访问这些全局对象的能力传递给 child
Here is a Sencha fiddle of my tab panel setup.按钮被动态添加到 vbox 选项卡容器中,该容器是 hbox 布局设置的一部分。选项卡容器的宽度由 flex
我是一名优秀的程序员,十分优秀!