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

Pandas 入门 15 题

Pandas 入门 15 题

  • 1. 相关知识点
    • 1.1 修改DataFrame列名
    • 1.2 获取行列数
    • 1.3 显示前n行
    • 1.4 条件数据选取值
    • 1.5 创建新列
    • 1.6 删去重复的行
    • 1.7 删除空值的数据
    • 1.9 修改列名
    • 1.10 修改数据类型
    • 1.11 填充缺失值
    • 1.12 数据上下合并
    • 1.13 pivot_table透视表的使用
    • 1.14 melt透视表的使用
    • 1.15 条件查询及排序
  • 2. 题目
    • 2.1 从表中创建 DataFrame((Pandas 数据结构)
    • 2.2 获取 DataFrame 的大小(数据检验)
    • 2.3 显示前三行(数据检验)
    • 2.4 数据选取(数据选取)
    • 2.5 创建新列(数据选取)
    • 2.6 删去重复的行(数据清理)
    • 2.7 删去丢失的数据(数据清理)
    • 2.8 修改列(数据清理)
    • 2.9 重命名列(数据清理)
    • 2.10 改变数据类型(数据清理)
    • 2.11 填充缺失值(数据清理)
    • 1.12 重塑数据:连结(表格重塑)
    • 1.13 数据重塑:透视(表格重塑)
    • 2.14 重塑数据:融合(表格重塑)
    • 2.15 方法链(高级技巧)

1. 相关知识点

1.1 修改DataFrame列名

data=pd.DataFrame(student_data,columns=['student_id','age'])

1.2 获取行列数

players.shape

1.3 显示前n行

employees.head(n)

1.4 条件数据选取值

students.loc[students['student_id']==101,['name','age']]
students[students['student_id']==101][['name','age']]
students.query('`student_id`==101')[['name','age']]

1.5 创建新列

  • 处理数据的时候,根据已知列得到新的列,可以考虑使用pandas.DataFrame.assign()函数
  • 使用assign函数不会改变原数据,而是返回一个新的DataFrame对象,包含所有现有列和新生成的列
  • 注意:assign和apply函数的主要区别在于前者不改变原数据,apply函数是在原数据的基础上添加新列
employees['bonus']=employees['salary'].apply(lambda x:x*2)
employees=employees.assign(bonus=employees.salary*2)
employees['bonus']=employees['salary']*2

1.6 删去重复的行

customers.drop_duplicates(subset=['email'],keep='first')

1.7 删除空值的数据

# axis=0代表行
students.dropna(subset=['name'],how='any', axis=0,inplace = False)

1.9 修改列名

data=data.rename(columns={'Dest':'iata_code','index':'from'})
students.columns=['student_id','first_name','last_name','age_in_years']

1.10 修改数据类型

students['grade']=students['grade'].astype('int')

1.11 填充缺失值

products['quantity'].fillna(0,inplace=True)# products.replace({'quantity':{# None:0# }},inplace=True)

1.12 数据上下合并

df1._append(df2)
# pd.concat([df1,df2],axis=0)

1.13 pivot_table透视表的使用

weather.pivot_table(index='month',values='temperature',columns='city',aggfunc='sum')

1.14 melt透视表的使用

  • df.pivot() 将长数据集转换成宽数据集,df.melt() 则是将宽数据集变成长数据集
pd.melt(report,id_vars['product'],var_name='quarter',value_name='sales')

1.15 条件查询及排序

animals[animals['weight'] > 100].sort_values(by='weight', ascending=False)

2. 题目

2.1 从表中创建 DataFrame((Pandas 数据结构)

在这里插入图片描述
在这里插入图片描述

import pandas as pddef createDataframe(student_data: List[List[int]]) -> pd.DataFrame: data=pd.DataFrame(student_data,columns=['student_id','age'])return data
student_data=[[1,15],[2,11],[3,11],[4,20]]print(createDataframe(student_data))

2.2 获取 DataFrame 的大小(数据检验)

在这里插入图片描述
在这里插入图片描述

import pandas as pddef getDataframeSize(players: pd.DataFrame) -> List[int]:return list(players.shape)

2.3 显示前三行(数据检验)

在这里插入图片描述
在这里插入图片描述

import pandas as pddef selectFirstRows(employees: pd.DataFrame) -> pd.DataFrame:return employees.head(3)

2.4 数据选取(数据选取)

在这里插入图片描述
在这里插入图片描述

import pandas as pddef selectData(students: pd.DataFrame) -> pd.DataFrame:return students.loc[students['student_id']==101,['name','age']]# return students[students['student_id']==101][['name','age']]# return students.query('`student_id`==101')[['name','age']]

2.5 创建新列(数据选取)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

import pandas as pddef createBonusColumn(employees: pd.DataFrame) -> pd.DataFrame:employees['bonus']=employees['salary'].apply(lambda x:x*2)# employees=employees.assign(bonus=employees.salary*2)# employees['bonus']=employees['salary']*2return employees

2.6 删去重复的行(数据清理)

在这里插入图片描述
在这里插入图片描述

import pandas as pddef dropDuplicateEmails(customers: pd.DataFrame) -> pd.DataFrame:return customers.drop_duplicates(subset=['email'],keep='first')

2.7 删去丢失的数据(数据清理)

在这里插入图片描述
在这里插入图片描述

import pandas as pddef dropMissingData(students: pd.DataFrame) -> pd.DataFrame:# axis=0代表行return students.dropna(subset=['name'],how='any', axis=0,inplace = False)

2.8 修改列(数据清理)

在这里插入图片描述
在这里插入图片描述

import pandas as pddef modifySalaryColumn(employees: pd.DataFrame) -> pd.DataFrame:employees=employees.assign(salary=employees.salary*2)# employees['salary']=employees['salary'].apply(lambda x:x*2)# employees['salary']=employees['salary']*2return employees

2.9 重命名列(数据清理)

在这里插入图片描述
在这里插入图片描述

import pandas as pddef renameColumns(students: pd.DataFrame) -> pd.DataFrame:students.columns=['student_id','first_name','last_name','age_in_years']# dic={#     'id':'student_id',#     'first':'first_name',#     'last':'last_name',#     'age':'age_in_years'}# students=students.rename(columns=dic)return students

2.10 改变数据类型(数据清理)

在这里插入图片描述
在这里插入图片描述

import pandas as pddef changeDatatype(students: pd.DataFrame) -> pd.DataFrame:students['grade']=students['grade'].astype('int')return students

2.11 填充缺失值(数据清理)

在这里插入图片描述
在这里插入图片描述

import pandas as pddef fillMissingValues(products: pd.DataFrame) -> pd.DataFrame:products['quantity'].fillna(0,inplace=True)# products['quantity']=products['quantity'].fillna(0)# products.replace({'quantity':{# None:0# }},inplace=True)return products

1.12 重塑数据:连结(表格重塑)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

import pandas as pddef concatenateTables(df1: pd.DataFrame, df2: pd.DataFrame) -> pd.DataFrame:return df1._append(df2)# return pd.concat([df1,df2],axis=0)

1.13 数据重塑:透视(表格重塑)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

import pandas as pddef pivotTable(weather: pd.DataFrame) -> pd.DataFrame:return weather.pivot_table(index='month',values='temperature',columns='city',aggfunc='sum')# return weather.set_index(['month','city']).unstack()['temperature

2.14 重塑数据:融合(表格重塑)

在这里插入图片描述
在这里插入图片描述

import pandas as pddef meltTable(report: pd.DataFrame) -> pd.DataFrame:report=pd.melt(report,id_vars=['product'],var_name='quarter',value_name='sales')return report

2.15 方法链(高级技巧)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

import pandas as pddef findHeavyAnimals(animals: pd.DataFrame) -> pd.DataFrame:animals = animals[animals['weight'] > 100].sort_values(by='weight', ascending=False)return animals[['name']]
http://www.lryc.cn/news/394215.html

相关文章:

  • 使用微信开发者工具连接gitee
  • 论文复现-基于决策树算法构建银行贷款审批预测模型(金融风控场景)
  • 力扣225题解析:使用队列实现栈的三种解法(Java实现)
  • 网络协议与标准
  • 154. 寻找旋转排序数组中的最小值 II(困难)
  • 5、MP4解复用---AAC+H264
  • 计算样本之间的相似度
  • 2-5 softmax 回归的简洁实现
  • 我 17 岁创业,今年 20 岁,月入 70 万,全靠低代码
  • 【Python】已解决:urllib.error.HTTPError: HTTP Error 403: Forbidden
  • 昇思12天
  • 【postgresql】 基础知识学习
  • 按键控制LED流水灯模式定时器时钟
  • 【Docker安装】OpenEuler系统下部署Docker环境
  • 小程序 使用 UI 组件 Vant Weapp 、vant组件样式覆盖
  • (接上一篇)前端弄一个变量实现点击次数在前端页面实时更新
  • 迭代器模式在金融业务中的应用及其框架实现
  • 浏览器插件利器-allWebPluginV2.0.0.14-stable版发布
  • 机器学习训练之使用静态图加速
  • 数据结构速成--图
  • 昇思25天学习打卡营第12天|FCN图像语义分割
  • 昇思MindSpore学习笔记4-03生成式--Diffusion扩散模型
  • Go:hello world
  • JVM专题之内存模型以及如何判定对象已死问题
  • vscode使用Git的常用操作
  • RPC与REST
  • 计数排序的实现
  • 【Qt】QTableWidget设置可以选择多行多列,并能复制选择的内容到剪贴板
  • 跨越界限的温柔坚守
  • Vue3 对于内嵌Iframe组件进行缓存