python对csv文件的处理,pandas 数据预处理csv,案例详细
文章目录
- csv文件的导入
- CSV文件的导出
- 不导出行号和标签,可分别将index或header设置为False
- 使用columns参数设置想导出的列
- 数据清理分组
- 排序
- 删除
- 缺失值处理
- 缺失值的删除
- 缺失值的填充
papadas的用法请参考 pandas数据预处理(Series DataFrame)详解附带案例
Pandas提供read_csv函数导入一个csv文件,导入的结果是一个DataFrame
csv文件的导入
food文件内容可用记事本创建改后缀为csv
编号,名字,类别,单价,每100克热量
1,炒上海青,蔬果类,5,53
2,啤酒,饮料类,7,32
3,蛋炒饭,主食类,12,144
4,葱油饼,主食类,6,259
5,红烧肉,肉类,50,513
6,酸菜鱼,肉类,45,98
7,麻婆豆腐,蔬果类,15,126
8,奶油蛋糕,零食类,10,379
9,黑巧克力,零食类,8,589
10,饮用水,饮料类,2,0
11,酸辣土豆丝,蔬果类,10,122
12,香辣薯片,零食类,6,555
13,珍珠奶茶,饮料类,12,52
14,冰淇淋,零食类,4,127
15,可口可乐,饮料类,3,43
16,兰州拉面,主食类,14,102
17,沙琪玛,零食类,3,506
18,烤鸡翅,肉类,15,185
19,北京烤鸭,肉类,55,436
20,西瓜,蔬果类,20,31
import pandas as pddf = pd.read_csv(r'C:\Users\PC\Desktop\panda\Food2.csv',encoding='UTF-8')
df =df.set_index('编号')
print(df)
如果提供的csv文件并不包含字段名,第一行开始就是内容,则要在导入时使用names参数拟定字段名
import pandas as pddf = pd.read_csv(r'C:\Users\PC\Desktop\panda\Food2.csv',encoding='UTF-8',names=['a','b','c','d','e'])
df =df.set_index('a')
print(df)
CSV文件的导出
pandas提供to_csv函数将DataFrame转换成文本内容
函数第一个参数是导出路径,seq参数可以指定分隔符
import pandas as pd
b =[{'姓名':'张三','年龄':16,'成绩':88},{'姓名':'张2','年龄':15,'成绩':87},{'姓名':'张1','年龄':18,'成绩':98}]
a = pd.DataFrame(b)
a.to_csv(r'C:\Users\PC\Desktop\panda\info01.csv',sep=',')
不导出行号和标签,可分别将index或header设置为False
import pandas as pd
b =[{'姓名':'张三','年龄':16,'成绩':88},{'姓名':'张2','年龄':15,'成绩':87},{'姓名':'张1','年龄':18,'成绩':98}]
a = pd.DataFrame(b)
a.to_csv(r'C:\Users\PC\Desktop\panda\info01.csv',sep=',',index=False,header=False)
使用columns参数设置想导出的列
import pandas as pd
b =[{'姓名':'张三','年龄':16,'成绩':88},{'姓名':'张2','年龄':15,'成绩':87},{'姓名':'张1','年龄':18,'成绩':98}]
a = pd.DataFrame(b)
a.to_csv(r'C:\Users\PC\Desktop\panda\info01.csv',sep=',',index=False,header=False,columns=['姓名'])
数据清理分组
还是以Food.csv为例子继续讲解
分组
可将DataFrame按某个标签值进行分组,如将食物按类别分组
得到的结果可以用for来遍历,遍历的每个元素都是一个DataFrame
import pandas as pddf = pd.read_csv(r'C:\Users\PC\Desktop\panda\Food2.csv',encoding='UTF-8')
group =df.groupby('类别')
for k,v in group:print(k,v)
计算每个类别最高热量的食物,其他函数(求和、求平均等)用法相同
import pandas as pd
df = pd.read_csv(r'C:\Users\PC\Desktop\panda\Food2.csv',encoding='UTF-8')
group =df.groupby('类别')
print(group.max())
排序
sort_index按索引排序
sort_values按值排序,可以指定一个或多个列名
注意排序操作不会改变原来的DataFrame,而是生成新的DataFrame
import pandas as pddf = pd.read_csv(r'C:\Users\PC\Desktop\panda\Food2.csv',encoding='UTF-8')print(df.sort_values('每100g热量'))
print("--------------------------------------------")
print(df.sort_values('每100g热量',ascending=False))#倒序print("--------------------------------------------")
print(df.sort_values(['类别','每100g热量']))#先排序类别再排序热量
删除
使用drop函数进行删除,注意:
1.删除列时,需要指定轴方向 axis=1
2.删除操作不会改变原来的DataFrame,而是生成新的DataFrame
import pandas as pd
df = pd.read_csv(r'C:\Users\PC\Desktop\panda\Food2.csv',encoding='UTF-8')
print('删除第一行')
print(df.drop(1))#删除第一行
print('删除第一第二行')
print(df.drop([1,2]))#删除第一第二行
print('删除编号这一列')
print(df.drop('编号',axis=1))#删除编号这一列
print('删除编号和名字这两列')
print(df.drop(['编号','名字'],axis =1))#删除编号和名字这两列
缺失值处理
缺失值的表现形式
NaN:表示非数字,出现于数字中的缺失数据
Python中的None也被当做NaN处理
缺失值的判断:
DataFrame提供isna或isnull函数可以判断表中是否存在缺失值
import pandas as pd
b =[{'姓名':'张三','年龄':16,'成绩':88},{'姓名':'张2','年龄':None,'成绩':87},{'姓名':'张1','年龄':18,'成绩':98}]
a = pd.DataFrame(b)
print(a.isna())
缺失值的删除
使用dropna函数会删除包含空数据的所有行
import pandas as pd
b =[{'姓名':'张三','年龄':16,'成绩':88},{'姓名':'张2','年龄':None,'成绩':87},{'姓名':'张1','年龄':18,'成绩':98}]
a = pd.DataFrame(b)
print(a.dropna())
dropna函数的参数中,axis可以指定删除的方向(行或列);how可以指定有一个空值就删除还是所有的都是空值才删除
import pandas as pd
b =[{'姓名':'张三','年龄':16,'成绩':88},{'姓名':'张2','年龄':None,'成绩':87},{'姓名':'张1','年龄':18,'成绩':98}]
a = pd.DataFrame(b)
print(a.dropna(axis=1))#删除这一列
print(a.dropna(how='any'))#只要有空就删除这行
print(a.dropna(how='all'))#全部是空才删除
缺失值的填充
使用fillna函数填充缺失值,可以指定一个值替换表中的空值
处理时可以按列分别处理
import pandas as pd
b =[{'姓名':'张三','年龄':16,'成绩':None},{'姓名':None,'年龄':None,'成绩':87},{'姓名':'张1','年龄':18,'成绩':98}]
a = pd.DataFrame(b)
a1 = a[:]
a1['姓名'] = a1['姓名'].fillna('未知')#位置替代None
a1['年龄'] = a1['年龄'].fillna(a['年龄'].mean())#均值替代
a1['成绩'] = a1['成绩'].fillna(a['成绩'].mean())
print(a1)
python对csv文件的处理,pandas 数据预处理csv,案例详细相关推荐
- php导出数据到csv文件,php导出CSV文件代码 PHP导出数据到CSV 如何排版
如何使用PHP导出csv和excel文件你走后,再也没有一个声音能让我在人海中突然回首张望. 把Excel文件导入mysql: 打开excel文件,可用phpExcel开源的类 或者: 先把excel ...
- pandas python csv_python:pandas合并csv文件的方法(图书数据集成)
数据集成:将不同表的数据通过主键进行连接起来,方便对数据进行整体的分析. 两张表:ReaderInformation.csv,ReaderRentRecode.csv ReaderInformatio ...
- Python基础——csv文件中某列数据替换为数字
csv文件中某列数据替换为数字 来源--机器学习读取数据 方法一:正则表达式,replace() import pandas as pd data = pd.read_csv("data2. ...
- 数据处理:1 用pandas处理大型csv文件 2 使用Pandas分块处理大文件 3 分块读取
在训练机器学习模型的过程中,源数据常常不符合我们的要求.大量繁杂的数据,需要按照我们的需求进行过滤.拿到我们想要的数据格式,并建立能够反映数据间逻辑结构的数据表达形式. 最近就拿到一个小任务,需要处 ...
- 将多个csv文件导入到pandas中并串联到一个DataFrame中
本文翻译自:Import multiple csv files into pandas and concatenate into one DataFrame I would like to read ...
- Python项目实践之二:下载数据(CSV和JSON )
Python项目实践之二:下载数据(CSV和JSON ) 下载数据的可视化着重点在于从网上下载数据进行分析后,进行可视化处理,网上的数据格式多的难以置信,且大多未经过仔细检查,如果能够对这些数据进行分 ...
- python将csv文件转换为列表_如何将csv文件数据转换成列表?
仍未解决的部分 我正在尝试转换csv文件中存储的数据'存储.txt'以使我可以更有效地使用它很容易.就像目前,我的文件存储中的项目如下:Leroy,55349234,ok@gmail.com Sati ...
- python读取文件某一行-使用python读取.text文件特定行的数据方法
如何用python循环读取下面.txt文件中,用红括号标出来的数据呢? 首先,观察数据可知,不同行的第一个数据元素不一样,所以考虑直接用正则表达式. 再加上,对读和写文件的操作,就行了 注:我用的是p ...
- python读取文件多行内容-使用python读取.text文件特定行的数据方法
如何用python循环读取下面.txt文件中,用红括号标出来的数据呢? 首先,观察数据可知,不同行的第一个数据元素不一样,所以考虑直接用正则表达式. 再加上,对读和写文件的操作,就行了 注:我用的是p ...
最新文章
- github上传本地代码失败
- API Sanity Checker在Ubuntu中的使用
- Java消息服务JMS详解
- react大数据量渲染_React 中的状态自动保存(KeepAlive)
- html实现圆圈逐渐放大,CSS3 简单的圆形放大旋转变换
- linux shell touch更新文件时间
- python流程控制语句-Python流程控制语句的深入讲解
- 打开组策略时提示inetres.admx管理模板解析出错解决方法
- SQLite介绍、学习笔记、性能测试
- 朴素贝叶斯和贝叶斯估计_贝叶斯估计收入增长的方法
- mysql建立从库同时备份_mysql主从库配置读写分离以及备份
- 2021c语言教程,全国计算机等级考试二级教程——C语言程序设计(2021年版)
- 另类终端「GitHub 热点速览 v.22.15」
- 试验设计系列(二)| 随机分组
- 打通对账的最后一公里——对账管理平台
- java mysql多媒体积件管理库的开发与应用源码+论文
- fiddler拦截模拟器中app的请求设置方法
- Kalendae多选日历插件
- gitchat训练营深度学习入门读书笔记
- org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.qiang.dao.UserM
热门文章
- 浅谈 深度学习、机器学习、人工智能
- 河海大学计算机科学培养方案,计算机科学与技术专业本科培养方案-河海大学计算机与信息学院.PDF...
- 迎接开学!多地制定错峰返校预案
- sed 流编辑器 简介及原理
- APISpace 工商详细信息查询API
- 【信号与系统】如何理解公式:r(t)=e(t)﹡h(t)
- Springboot漫画网站j846u计算机毕业设计-课程设计-期末作业-毕设程序代做
- 免费生成短网址稳定接口
- python 爬虫开发之抖音小工具
- 2021中山大学计算机考研复试与调剂经验