replace函数怎么用python python代码自动生成器下载
大家好,关于replace函数怎么用python很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于python代码自动生成器下载的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下本站哦,希望对各位有所帮助!
python内置函数
8个超好用的内置函数set()、eval()、sorted()、reversed()、map()、reduce()、filter()、enumerate()。
1、set()
当需要对一个列表进行去重操作的时候,set()函数就派上用场了。
用于创建一个集合,集合里的元素是无序且不重复的。集合对象创建后,还能使用并集、交集、差集功能。
2、eval()
之前有人问如何用Python写一个四则运算器,输入字符串公式,直接产生结果。用eval()来做就很简单:eval(str_expression)作用是将字符串转换成表达式,并且执行。
3、sorted()
在处理数据过程中,我们经常会用到排序操作,比如将列表、字典、元组里面的元素正/倒排序。这时候就需要用到sorted(),它可以对任何可迭代对象进行排序,并返回列表。
4、reversed()
如果需要对序列的元素进行反转操作,reversed()函数能帮到你。reversed()接受一个序列,将序列里的元素反转,并最终返回迭代器。
5、map()
做文本处理的时候,假如要对序列里的每个单词进行大写转化操作。这个时候就可以使用map()函数。
map()会根据提供的函数,对指定的序列做映射,最终返回迭代器。也就是说map()函数会把序列里的每一个元素用指定的方法加工一遍,最终返回给你加工好的序列。比如:对列表里的每个数字作平方处理。
6、reduce()
前面说到对列表里的每个数字作平方处理,用map()函数。那我想将列表里的每个元素相乘,该怎么做呢?这时候用到reduce()函数。
reduce()会对参数序列中元素进行累积。第一、第二个元素先进行函数操作,生成的结果再和第三个元素进行函数操作,以此类推,最终生成所有元素累积运算的结果。
你可能已经注意到,reduce()函数在Python3里已经不再是内置函数,而是迁移到了functools模块中,这说明reduce()函数太重要了!
7、filter()
filter()函数用于过滤序列,过滤掉不符合条件的元素,返回一个迭代器对象,如果要转换为列表,可以使用 list()来转换。
该接收两个参数,第一个为函数,第二个为序列,序列的每个元素作为参数传递给函数进行判断,然后返回 True或 False,最后将返回 True
的元素放到新列表中。
8、enumerate()
enumerate()函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for
循环当中。
Python爬虫数据应该怎么处理
一、首先理解下面几个函数
设置变量 length()函数 char_length() replace()函数 max()函数
1.1、设置变量 set@变量名=值
set@address='中国-山东省-聊城市-莘县';select@address
1.2、length()函数 char_length()函数区别
select length('a')
,char_length('a')
,length('中')
,char_length('中')
1.3、 replace()函数和length()函数组合
set@address='中国-山东省-聊城市-莘县';select@address
,replace(@address,'-','') as address_1
,length(@address) as len_add1
,length(replace(@address,'-','')) as len_add2
,length(@address)-length(replace(@address,'-','')) as _count
etl清洗字段时候有明显分割符的如何确定新的数据表增加几个分割出的字段
计算出com_industry中最多有几个-符以便确定增加几个字段最大值+1为可以拆分成的字段数此表为3因此可以拆分出4个行业字段也就是4个行业等级
select max(length(com_industry)-length(replace(com_industry,'-',''))) as _max_count
from etl1_socom_data
1.4、设置变量 substring_index()字符串截取函数用法
set@address='中国-山东省-聊城市-莘县';
select
substring_index(@address,'-',1) as china,
substring_index(substring_index(@address,'-',2),'-',-1) as province,
substring_index(substring_index(@address,'-',3),'-',-1) as city,
substring_index(@address,'-',-1) as district
1.5、条件判断函数 case when
case when then when then else值 end as字段名
select case when 89>101 then'大于' else'小于' end as betl1_socom_data
二、kettle转换etl1清洗
首先建表步骤在视频里
字段索引没有提索引算法建议用BTREE算法增强查询效率
2.1.kettle文件名:trans_etl1_socom_data
2.2.包括控件:表输入>>>表输出
2.3.数据流方向:s_socom_data>>>>etl1_socom_data
kettle转换1截图
2.4、表输入2.4、SQL脚本初步清洗com_district和com_industry字段
select a.*,case when com_district like'%业' or com_district like'%织' or com_district like'%育' then null else com_district end as com_district1
,case when com_district like'%业' or com_district like'%织' or com_district like'%育' then concat(com_district,'-',com_industry) else com_industry end as com_industry_total
,replace(com_addr,'地址:','') as com_addr1
,replace(com_phone,'电话:','') as com_phone1
,replace(com_fax,'传真:','') as com_fax1
,replace(com_mobile,'手机:','') as com_mobile1
,replace(com_url,'网址:','') as com_url1
,replace(com_email,'邮箱:','') as com_email1
,replace(com_contactor,'联系人:','') as com_contactor1
,replace(com_emploies_nums,'公司人数:','') as com_emploies_nums1
,replace(com_reg_capital,'注册资金:万','') as com_reg_capital1
,replace(com_type,'经济类型:','') as com_type1
,replace(com_product,'公司产品:','') as com_product1
,replace(com_desc,'公司简介:','') as com_desc1from s_socom_data as a
2.5、表输出
表输出设置注意事项
注意事项:
①涉及爬虫增量操作不要勾选裁剪表选项
②数据连接问题选择表输出中表所在的数据库
③字段映射问题确保数据流中的字段和物理表的字段数量一致对应一致
三、kettle转换etl2清洗
首先建表增加了4个字段演示步骤在视频里
字段索引没有提索引算法建议用BTREE算法增强查询效率
主要针对etl1生成的新的com_industry进行字段拆分清洗
3.1.kettle文件名:trans_etl2_socom_data
3.2.包括控件:表输入>>>表输出
3.3.数据流方向:etl1_socom_data>>>>etl2_socom_data
注意事项:
①涉及爬虫增量操作不要勾选裁剪表选项
②数据连接问题选择表输出中表所在的数据库
③字段映射问题确保数据流中的字段和物理表的字段数量一致对应一致
kettle转换2截图
3.4、SQL脚本对com_industry进行拆分完成所有字段清洗注册资金字段时间关系没有进行细致拆解调整代码即可
select a.*,case
#行业为''的值置为空when length(com_industry)=0 then null
#其他的取第一个-分隔符之前else substring_index(com_industry,'-',1) end as com_industry1,case
when length(com_industry)-length(replace(com_industry,'-',''))=0 then null
#'交通运输、仓储和邮政业-'这种值行业2也置为nullwhen length(com_industry)-length(replace(com_industry,'-',''))=1 and length(substring_index(com_industry,'-',-1))=0 then nullwhen length(com_industry)-length(replace(com_industry,'-',''))=1 then substring_index(com_industry,'-',-1)else substring_index(substring_index(com_industry,'-',2),'-',-1)end as com_industry2,case
when length(com_industry)-length(replace(com_industry,'-',''))<=1 then nullwhen length(com_industry)-length(replace(com_industry,'-',''))=2 then substring_index(com_industry,'-',-1)else substring_index(substring_index(com_industry,'-',3),'-',-1)end as com_industry3,case
when length(com_industry)-length(replace(com_industry,'-',''))<=2 then nullelse substring_index(com_industry,'-',-1)end as com_industry4from etl1_socom_data as a
四、清洗效果质量检查
4.1爬虫数据源数据和网站数据是否相符
如果本身工作是爬虫和数据处理在一起处理,抓取的时候其实已经判断,此步骤可以省略,如果对接上游爬虫同事,这一步首先判断,不然清洗也是无用功,一般都要求爬虫同事存储请求的url便于后面数据处理查看数据质量
4.2计算爬虫数据源和各etl清洗数据表数据量
注:SQL脚本中没有经过聚合过滤 3个表数据量应相等
4.2.1、sql查询下面表我是在同一数据库中如果不在同一数据库 from后面应加上表所在的数据库名称
不推荐数据量大的时候使用
select count(1) from s_socom_dataunion all
select count(1) from etl1_socom_dataunion all
select count(1) from etl2_socom_data
4.2.2根据 kettle转换执行完毕以后表输出总量对比
kettle表输出总数据量
4.3查看etl清洗质量
确保前两个步骤已经无误,数据处理负责的etl清洗工作自查开始针对数据源清洗的字段写脚本检查 socom网站主要是对地区和行业进行了清洗对其他字段做了替换多余字段处理,因此采取脚本检查,
找到page_url和网站数据进行核查
where里面这样写便于查看某个字段的清洗情况
select*
from etl2_socom_data
where com_district is null and length(com_industry)-length(replace(com_industry,'-',''))=3
此页面数据和etl2_socom_data表最终清洗数据对比
网站页面数据
etl2_socom_data表数据
清洗工作完成。
学python别说还不会用这些快捷键了
学python别说还不会用这些快捷键了
ー、编辑(Editing)
1.Ctr+Space基本的代码完成(类、方法、属性)。
2.Ctrl+Alt+Space快速导入任意类。
3.Ctrl+Shift+Enter语句完成。
4.Ctrl+P参数信息(在方法中调用参数)。
5.Ctrl+Q快速查看文档。
6.F1外部文档。
7.Shift+F1外部文档。进入web文档主页。
8.ctrl+Shift+Z->Redo重做。
9.Ct+悬浮单击鼠标左键简介进入代码定义。
10.Ctl+F1显示错误描述或警告信息。
11.AIt+Insert自动生成代码。
12.Ctrl+0重新方法。
13.Ctrl+AIt+T选中。
14.Ct+行注释取消行注释。
15.Ctrl+Shift+/块注释。
16.Ctrl+Shift+1查看快速定义。
17.Ctrl+Shift+B跳转到类型声明。
18.Ctl+U跳转到父方法、父类。
19.Ctrl+]爪跳转到代码块结束、开始。
20.Ctrl+F12弹出文件结构。
21.Ctrl+H类型层次结构。
22.Ctrl+Shift+H方法层次结构。
23.Ctrl+AIt+H调用层次结构。
24.F2/Shift+F2下一条、前一条高亮的错误。
25.F4/Ctrl+Enter编辑资源、查看资源。
26.AIt+Home显示导航条F11书签开关。
27.Ctrl+Shift+F11书签助记开关。
28.Ctrl+#[0-9]跳转到标识的书签。
29.Shift+F11显示书签AIt+Tab切换窗口。
30.Ctrl+Shift+J添加智能线。
31.Ctrl+Enter智能线切割。
32.Shift+Enter另起一行。
33.Ctrl+Shift+U在选定的区域或代码块间切换。
34.Ctrl+Delete删除到字符结束。
35.Ctrl+Backspace删除到字符开始。
36.Ctrl+Numpad+展开/折叠代码块〔当前位置的:函数,注释等)。
37.Ctrl+shift+Numpad.+/展开折叠所有代码块。
38.Ctr+F4关闭运行的选项卡。
39.默认是选中+ctrlcommand+shift+u转换字母大小写。
二、查找替换(Search/Replace)
1.F3下一个。
2.Shift+F3前一个。
3.Ctrl+R替换。
4.Ctrl+Shif+F或者连续2次敲击shift全局查找何以在整个项目中查我煤个字符痒什么的,如查找某个函数名字符串看之前是怎么使用这个函数的。
5.Ctrl+Shift+R全局替换。
三、运行(Running)
1.Alt+Shift+F10运行模式配置。
2.Alt+Shift+F9调试模式配置。
3.Shift+F1O运行。
4.Shift+F9调试。
5.Ctrl+Shift+F10运行编辑器配置。
6.Ctrl+Alt+R运行manage.py任务。
四、调试(Debugging)
1.F8跳过。
2.F7进入。
3.Shift-+F8退出。
4.Alt+F9运行游标。
5.At+F8验证表达式。
6.Ctrl+Alt+F8快速验证表达式。
7.F9恢复程序。
8.Ctrl+F8断点开关。
9.Ctrl+Shift+-F8查看断点。
五、导航(Navigation)
1.Ctrl+N跳转到类。
2.Ctrl+Shift+N跳转到符号。
3.Alt+Right/儿eft跳转到下一个、前一个编辑的选项卡,代码文件(cmd+alt+right/left mac)。
4.AIt+Up/Down跳转到上一个、下一个方法。
5.F12回到先前的工具窗口。
6.Esc从工具窗口回到编辑窗回。
7.Shift+Esc隐藏运行的、最近运行的窗。
8.Ctrl+Shift+F4关闭主动运行的选项卡。
9.Ctrl+G查看当前行号、字符号。
10.Ctrl+E当前文件弹出,打开最近使用的文件列表。
11.Ctrl+AIt+Left/Right.后退、前进。
12.Ctrl+Shift+Backspace导航到最近编辑区域,差不多就是返回上次编辑的位置。
13.At+F1查找挡前文件或标识。
14.Ctrl+B/Ctrl+Click跳转到声明。
15.Ctr+AIt+B跳转到实现。
16.Ctrl+W选中增加的代码块。
17.Ctrl+Shift+W回到之前状态。
18.Ctrl+Shift+][选定代码块结束、开始。
19.Alt+Enter快速修正。
20.Ctr+AIt+L代码格式化。
21.Ctrl+At+0优化导入。
22.Ctrl+AIt+1自动缩进。
23.Tab/Shift+Tab缩进、不缩进当前行。
24.Ctrl+X/Shift+-Delete剪切当前行或选定的代码块到剪贴板。
25.Ctrl+C/Ctrl+Insert,复制当前行或选定的代码块到剪贴板。
26.Ctrl+V/Shift+Insert从剪贴板粘贴。
27.Ctrl+Shift+V从最近的缓冲区粘贴。
28.Ctrl+D复制选定的区域或行。
29.Ctr+Y删除选定的行。
文章到此结束,如果本次分享的replace函数怎么用python和python代码自动生成器下载的问题解决了您的问题,那么我们由衷的感到高兴!