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

1、字段抽取

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

from pandas import read_csv

df = read_csv(
    'D:\\PDA\\4.6\\data.csv'
)
#默认将电话号码按照数值型来处理了,需要先转换为字符型,astype
df['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'] = bands
df['areas'] = areas
df['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_csv

df = 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 pandas

df = 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)]

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Python小屋

Python内置函数int()高级用法

int()函数常用来把其他类型转换为整数,例如: >>> int(3.2) 3 >>> int(1/3) 0 其实,int是Python内置类型之一,之所以能...

3057
来自专栏架构之路

一条直线上N个线段所覆盖的总长度

转自http://blog.csdn.net/bxyill/article/details/8962832 问题描述: 现有一直线,从原点到无穷大。 这条直线上...

3645
来自专栏前端杂谈

前端算法-基本排序算法比较

36913
来自专栏Golang语言社区

深入解析快速排序算法的原理及其Go语言版实现

快速排序是一种基于分治技术的重要排序算法。不像归并排序是按照元素在数组中的位置对它们进行划分,快速排序按照元素的值对它们进行划分。具体来说,它对给定数组中的元素...

3425
来自专栏编程

Python内置函数int高级用法

int()函数常用来把其他类型转换为整数,例如: >>>int(3.2) 3 >>>int(1/3) 其实,int是Python内置类型之一,之所以能够当作函数...

2609
来自专栏青青天空树

小白详细讲解快速幂--杭电oj2035-A^B

输入数据包含多个测试实例,每个实例占一行,由两个正整数A和B组成(1<=A,B<=10000),如果A=0, B=0,则表示输入数据的结束,不做处理。

1433
来自专栏鸿的学习笔记

两个字符串算法

这部分主要使用了动态规划的技术,就是如果两个最大公共子序列相等的话,必然前面的也相等

512
来自专栏小詹同学

Leetcode打卡 | No.015 三数之和

欢迎和小詹一起定期刷leetcode,每周一和周五更新一题,每一题都吃透,欢迎一题多解,寻找最优解!这个记录帖哪怕只有一个读者,小詹也会坚持刷下去的!

1272
来自专栏糊一笑

关于一道面试题【字符串 '1 + (5 - 2) * 3',怎么算出结果为10,'eval'除外】

最近徘徊在找工作和继续留任的纠结之中,在朋友的怂恿下去参加了一次面试,最后一道题目是: 写一个函数,输入一个字符串的运算式,返回计算之后的结果。例如这样的: ...

56210
来自专栏静默虚空的博客

排序四 希尔排序

要点 希尔(Shell)排序又称为缩小增量排序,它是一种插入排序。它是直接插入排序算法的一种威力加强版。 该方法因DL.Shell于1959年提出而得名。 希尔...

2589

扫码关注云+社区

领取腾讯云代金券