当前位置: 首页 > news >正文

数据处理python

1.列筛选

(1)某一列&某几列

对于一个表单里面的数据,如果我们想要对于这个表单里面的数据进行处理,我们可以一列一列进行处理,也可以多列一起进行处理;


一列一列处理:

只需要在这个dataframe变量的后面添加上这个中括号和对应想要处理的索引;

下面的data就是这个里面的dataframe变量,中括号里面的就是对应的列索引,相当于是我们只会打印这个表单里面的第三列的数据;

data = pd.read_csv("/Users/yequ/电商数据清洗.csv")# 使用print()输出变量data中的 "payment" 列print(data["payment"])# TODO 使用print()输出变量data中的 "price" 列print(data["price"])# 使用print()输出变量data中的 "cutdown_price" 列print(data["cutdown_price"])

我们如果想要对于上面的这几列的数据进行运算的话,也是可以一列一列的进行运算的;

例如我们下面进行的运算就是每一列的数据都要除以100;

# 将变量data中的 "payment" 列修改为以元为单位的数据data["payment"] = data["payment"]/100# TODO 将变量data中 的 "price" 列修改为以元为单位的数据data["price"] = data["price"]/100# 将变量data中的 "cutdown_price" 列修改为以元为单位的数据data["cutdown_price"] = data["cutdown_price"]/100# 使用print()输出变量dataprint(data)

同样是上面的这个数据表单,我们还可以


多列一起进行处理

这个pandas里面可以使用两个中括号里面套着这些数据,就可以实现多列进行相同处理的效果;

这个里面是一共使用了两个中括号的,第一个中括号就是表示的对于这个data的索引值,第二个表示的就是这个中括号里面的内容就是一个简单的列表,对于这个列表里面的数据进行操作;

# TODO 将变量data中的"payment", "price", "cutdown_price" 这三列修改为以元为单位的数据
data[["payment", "price", "cutdown_price"]] 
= data[["payment", "price", "cutdown_price"]]/100# 使用print()输出变量data
print(data)

2.按照index访问数据

一行多列,单个多个数据


使用下面的这个表达作为例子,这个时候我们就可以使用.loc加上对应的行索引找到这一行的元素

print(data.loc[3515712])

 上面这个代码就会打印输出这个对应的这一行的信息;,包括这个user_id还有这个后面的各种费用都会打印出来;


访问连续的几行:

因为想要打印的这几行数据是连续的,这个时候就可以使用这个冒号运算符,只需要我们输入这个起始位置和终止位置即可;

# 使用print()和.loc属性输出订单号3515712到3515716的数据print(data.loc[3515712:3515716])

打印不连续的几行:

使用这个两个中括号,把这几行不连续的索引值全部放进去即可;

print(data.loc[[3515714,3601839,3601842]])

访问单个元素:

只需要给出来这个行标和列标,就可以准确的定位到这个数据,并且打印出来;

print(data.loc[3515712,"payment"])

下面介绍的就是iloc属性,这个属性传递进去的参数就是对应的行标,以此来访问这个行数据 

iloc属性:按照这个位置访问对应位置上面的数值;

这个访问的权限和上面介绍的都是一样的,但是这个括号里面的内容就不是向上面一样的这个具体的内容,因为我们使用loc属性的时候,传递进去的参数就是这个price这些使用的是表格里面的数据,这个.iloc属性使用的参数就是对应的下标,不需要我们传递具体的数值;

3.布尔索引

(1)这个数据筛选的方式主要是针对于这个大型数据集,我们可以通过这个方式判断这个数据是不是符合条件的;

(2)我们可以使用两个方括号,里面的中括号返回值就是一个series序列,外面的这个中括号使用里面的这个返回的series作为索引就可以得到新的符合条件的系列;

# TODO 使用print()和布尔索引,输出"cutdown_price"这一列值里大于0的行print(data[data["cutdown_price"]>0])

(3)如果我们想要一次性对于多个条件进行判断是否符合,这个时候就需要使用逻辑运算符,这个里面代表的意义和上面的一样,需要注意的就是这个括号之间的嵌套;

# TODO 使用print()和布尔索引
# 输出"cutdown_price"这一列值里大于0
# 和"post_fee"这一列值里大于0的行数据print(data[(data["cutdown_price"]>0)&(data["post_fee"]>0)])

4.时间类型和格式转换

(1)字符串类型转换为时间类型并且进行这个筛选:

# TODO 将data中"购药时间"这一列数据从字符串类型转换为日期类型data["购药时间"]=pd.to_datetime(data["购药时间"])# TODO 使用布尔索引,筛选出"购药时间"列中月份等于2的数据,并赋值给data_2018_2data_2018_2=data[data["购药时间"].dt.month==2]# 使用print()函数输出data_2018_2print(data_2018_2)

使用的是pd模块去调用这个to_datatime函数,这个函数的参数就是想要进行修改的列,生成的就是事件类型的数据,把这个字符串类型数据转换为时间类型;

筛选就是选出来这个事件类型里面的月份是二月份的,我们依然是使用这个.dt.month属性进行这个判断,把这个符合条件的赋值给一个新的变量,把这个变量打印输出;

(2)格式转换函数

# TODO 使用astype()函数,将data["身份证号"]转换为str类型data["身份证号"]=data["身份证号"].astype(str)

 上面这个代码部分就是把这个身份证号这一列转换为str类型的数据,调用的就是astype函数;

http://www.lryc.cn/news/385467.html

相关文章:

  • 【MotionCap】SLAHMR 在 Colab 的demo运行笔记
  • Qt-Advanced-Docking-System示例程序
  • 戴尔笔记本重装系统?笔记本卡顿失灵?一键重装系统!
  • ViewController 的常用跳转及返回方法
  • FFmpeg开发笔记(四十一)结合OBS与MediaMTX实现SRT直播推流
  • 探索AI的巅峰:详解GPT-3.5与GPT-4系列模型的区别
  • Linux-笔记 使用SCP命令传输文件报错 :IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
  • 计算机网络 静态路由及动态路由RIP
  • Django实现部门管理功能
  • 概率论与数理统计期末复习
  • python 识别图片点击,设置坐标,离设置坐标越近的优先识别点击
  • 【实战教程】如何使用JMeter来轻松测试WebSocket接口?
  • 【linux】详解——库
  • RuntimeError: “exp_vml_cpu“ not implemented for ‘Half‘
  • JVM之双亲委派机制
  • Gemalto SafeNet Luna HSM服务器硬件监控指标解读
  • 计算机视觉与人工智能领域常用期刊和会议缩写
  • ONLYOFFICE桌面编辑器8.1版:个性化编辑和功能强化的全面升级
  • 用一个实例看如何分享大量照片 续篇二,关于Exif (Exchangeable Image File) - 可交换图像文件
  • 使用Python自动化收集和处理视频资源的教程
  • 字节数组输出流转换为Base64方法记录
  • 在eclipse中导入idea项目步骤
  • 海思SS928/SD3403开发笔记4——u盘挂载
  • 偏微分方程算法之抛物型方程差分格式编程示例六(混合边界条件下C-N格式)
  • 【5G核心网】5G NWDAF(Network Data Analytics Function)网元功能介绍
  • 今日思考分享:全网爆火的山东车牌之歌原因是什么?
  • Spring Boot 2.x + Mybatis Plus 多数据源配置
  • 2、数据库模型图、er图
  • Docker的理解
  • 通信协议总结