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

数据分析 | Pandas 200道练习题,每日10道题,学完必成大神(2)

文章目录

    • 前期准备
    • 1.通过DataFrame保存为EXCEL
    • 2.查看数据行列数
    • 3.提取popularity列中值大于3小于7的行
    • 4.交换两列的位置
    • 5.提取popularity列最大的行所在行
    • 6.查看最后3行数据
    • 7.删除最后一行数据
    • 8.添加一行数据
    • 9.队数据按照popularity列的值的大小进行排序
    • 10.统计grammer列每个字符串的长度

前期准备

准备后期要使用的数据,使用字典创建DataFrame对象

import pandas as pd
import numpy as np
data = {
    'grammer':['python','java','go',np.nan,'python','C','C++'],
    'popularity':[1,np.nan,np.nan,4,5,7,8]
}
df = pd.DataFrame(data)
df

在这里插入图片描述

1.通过DataFrame保存为EXCEL

保存文件的函数一般是 to_xxx

# 保存为EXCEL文件
df.to_excel('text.xlsx')
# 保存为csv文件
df.to_csv('text.csv')

2.查看数据行列数

通过DataFrame的对象的属性查看数据行列数
也可以通过其他的方式进行查询,但是这种是最便捷的

# .shape是属性 不用加括号
df.shape 

3.提取popularity列中值大于3小于7的行

使用的是布尔值索引还有进行合取操作

df[(df['popularity']>3) & (df['popularity']<7)]

在这里插入图片描述

4.交换两列的位置

其实这个交换位置,内在的逻辑就是先取出交换后的数据,再将交换后的数据重新赋值给df

df = df[['popularity','grammer']]
df

在这里插入图片描述

5.提取popularity列最大的行所在行

使用到了max函数同样还有min函数,
使用这个方法避免了数据中出现两个最大值而而只取出一个的情况。

df[df['popularity']== df['popularity'].max()] 

在这里插入图片描述

6.查看最后3行数据

使用的是tail()函数,默认是最后5行,在括号里面传入X就会返回最后X
同样还用head() 用法是一样的

# 查看最后3行的数据
df.tail(3)

在这里插入图片描述

7.删除最后一行数据

主要的思路是选中最后一行,然后删除,这种方式还可以删除多行

# 方式1
df.drop([len(df)-1],inplace=True)
# 方式2
df.drop([df.shape[0]-1],inplace=True)
df

在这里插入图片描述

8.添加一行数据

append() 添加数据,使用字典添加,字典的键是列名,值是要添加的数据,如果字典的键在DataFrame
中不存在,则会新建一列,其余的行设置为NaN

row = {'grammer':'Perl','popularity':6.6}
df.append(row,ignore_index=True)   # 忽略行索引

在这里插入图片描述

9.队数据按照popularity列的值的大小进行排序

使用sort_values函数,按值排序,默认是升序 添加参数ascending=False可以变为降序

df.sort_values('popularity')  # 不会修改原数据
df.sort_values('popularity',inplace=True)  # 修改原数据

在这里插入图片描述

10.统计grammer列每个字符串的长度

因为计算字符的长度,不能为NaN不然会报错,所以我们在计算字符串的长度的时候可以选择先将孔空缺的数据填充上去,然后在计算长度

df['grammer'] = df['grammer'].fillna("R")   # 将空缺的数据填充为R 也可以填充为一个空字符

df['len_str'] = df['grammer'].map(len)     # 使用map函数,map函数传入一个函数,每一行的数据会依次调用这个函数
df

在这里插入图片描述

今天这10道题还是比较轻松的,希望大家能够多多拓展,拓宽自己的思路,尝试一些新的方法。

这里我推荐大家去 牛客网 继续练习,牛客网里面有相应题目的专项突破

在这里插入图片描述

相关文章:

  • 2017年某高校848数据结构真题复习
  • python正态分布中的normal函数
  • 场景金融持续引发行业关注,4.0时代打造金融服务新生态
  • 大数据面试重点之mysql篇
  • 【网络安全篇】JavaSript基础内容大全
  • 【数据结构与算法】时间复杂度和空间复杂度
  • 问:毁掉一个人,有多容易?答:年龄到了就可以
  • 最新|全新风格原创YOLOv7、YOLOv5和YOLOX网络结构解析图
  • 100个Python实战项目(十二)Python 并发图像下载器
  • RocketMQ 基础模型
  • java计算机毕业设计校园快递代领系统源程序+mysql+系统+lw文档+远程调试
  • 【Python】列表list
  • 如何在自己电脑上配置开发深度学习项目(windows)
  • 麻雀优化CNN超参数用于回归MATLAB
  • 激光切割教程(有线版)
  • [rust! #004] [译] Rust 的内置 Traits, 使用场景, 方式, 和原因
  • Android Studio:GIT提交项目到远程仓库
  • canvas 五子棋游戏
  • CEF与代理
  • CentOS 7 防火墙操作
  • Centos6.8 使用rpm安装mysql5.7
  • CSS魔法堂:Absolute Positioning就这个样
  • GraphQL学习过程应该是这样的
  • HTTP那些事
  • js对象的深浅拷贝
  • Map集合、散列表、红黑树介绍
  • tab.js分享及浏览器兼容性问题汇总
  • 初识MongoDB分片
  • 当SetTimeout遇到了字符串
  • 给第三方使用接口的 URL 签名实现
  • 开发基于以太坊智能合约的DApp
  • 设计模式 开闭原则
  • 使用 Node.js 的 nodemailer 模块发送邮件(支持 QQ、163 等、支持附件)
  • 通过获取异步加载JS文件进度实现一个canvas环形loading图
  • 用jquery写贪吃蛇
  • !!【OpenCV学习】计算两幅图像的重叠区域
  • #HarmonyOS:基础语法
  • ${ }的特别功能
  • (3)(3.2) MAVLink2数据包签名(安全)
  • (4)通过调用hadoop的java api实现本地文件上传到hadoop文件系统上
  • (LeetCode) T14. Longest Common Prefix
  • (附源码)php投票系统 毕业设计 121500
  • (十)DDRC架构组成、效率Efficiency及功能实现
  • (学习日记)2024.01.09
  • (原創) 如何讓IE7按第二次Ctrl + Tab時,回到原來的索引標籤? (Web) (IE) (OS) (Windows)...
  • (转)Android中使用ormlite实现持久化(一)--HelloOrmLite
  • (转)MVC3 类型“System.Web.Mvc.ModelClientValidationRule”同时存在
  • .NET Core中的去虚
  • .NET MVC 验证码
  • .NET Remoting Basic(10)-创建不同宿主的客户端与服务器端
  • .NET 读取 JSON格式的数据
  • .NET/C# 的字符串暂存池
  • .Net6使用WebSocket与前端进行通信
  • .NetCore项目nginx发布
  • .Net下C#针对Excel开发控件汇总(ClosedXML,EPPlus,NPOI)