Python中字段抽取、字段拆分、记录抽取

来源:互联网 发布:参加java培训班有用吗 编辑:程序博客网 时间:2024/06/05 20:04

1、字段抽取

字段抽取是根据已知列数据的开始和结束位置,抽取出新的列
字段截取函数:slice(start,stop)
注意:和数据结构的访问方式一样,开始位置是大于等于,结束位置是小于。

from pandas import read_csvdf = read_csv(    'D:\\PDA\\4.6\\data.csv')#默认将电话号码按照数值型来处理了,需要先转换为字符型,astypedf['tel'] = df['tel'].astype(str)#运营商bands = df['tel'].str.slice(0, 3)#地区areas = df['tel'].str.slice(3, 7)#号码段nums = df['tel'].str.slice(7, 11)#赋值回去df['bands'] = bandsdf['areas'] = areasdf['nums'] = nums

2、字段拆分

是指按照固定的字符,拆分已有字符串

字符分割函数:split(sep,n,expand=False)
#类似于excel中的分列功能
参数说明
① sep   用于分割的字符串
② n       分割为多少列(不分割n=0,分割为两列n=1,以此类推
③expand 是否展开为数据框,默认为False,一般都设置为True
返回值
① 如果expand为True,则返回DataFrame
② 如果expand为False,则返回Series

from pandas import read_csvdf = read_csv(    'D:\\PDA\\4.7\\data.csv')newDF = df['name'].str.split(' ', 1, True)newDF.columns = ['band', 'name']

3、记录抽取

根据一定的条件,对数据进行抽取

记录抽取函数:dataframe[condition]

#类似于excel里的过滤功能

参数说明
① condition 过滤的条件
返回值
① DataFrame
常用的条件类型
大于(>),小于(<),大于等于(>=),小于等于(<=),不等于(!=)

例如:df[df.comments>10000];

#这里的范围是指>=left&<=right

例如:df[df.comments.between(1000,10000)]
例如:df[pandas.isnull(df.title)]
str.comtains(patten,na=False)
例如:df[df.title.str.contains("XX",na=False)]

其中na参数是指空值的处理方式,不匹配空值。

(1)比较运算

(2)范围运算 between(left,right)

(3)空值匹配 pandas.isnull(column)

(4)字符匹配

(5)逻辑运算

与(&),或(|),取反(not)

import pandasdf = pandas.read_csv(    'D:\\PDA\\4.8\\data.csv', sep="|")#单条件df[df.comments>10000]#多条件df[df.comments.between(1000, 10000)]#过滤空值所在行df[pandas.isnull(df.title)]#根据关键字过滤df[df.title.str.contains('台电', na=False)]#~为取反df[~df.title.str.contains('台电', na=False)]#组合逻辑条件df[(df.comments>=1000) & (df.comments<=10000)]

原创粉丝点击