python中csv文件的若干读写方法小结


Posted in Python onJuly 04, 2018

如下所示:

//用普通文本文件方式打开和操作

with open("'file.csv'") as cf:
    lines=cf.readlines()
    ......
//用普通文本方式打开,用csv模块操作

import csv
with open("file.csv") as cf:
    lines=csv.reader(cf)
    for line in lines:
        print(line)
    ......
import csv
headers=['id','username','password','age','country']
rows=[(1001,'qiye','qiye_pass',20,'china'),(1002,'mary','mary_pass',23,'usa')]
f=open("csvfile.csv",'a+')
wf =csv.writer(f)
wf.writerow(headers)
wf.writerows(rows)
f.close()

csv模块相关方法和属性

csv.writer(fileobj [, dialect='excel'][optional keyword args])返回DictWriter类

csv.reader(iterable [, dialect='excel'][,optional keyword args])返回DictRead类

csv.writer(csvfile.csv).writerow(rowdict)

csv.DictWriter.writerow()

csv.DictWriter.writeheader()

csv.DictWriter.writerows()

csv.writer(csvfile.csv).writerow(rowdicts)

csv.reader(csvfile.csv).next()

csv.DictReader.next()

csv.field_size_limit()

csv.get_dialect()

csv.list_dialects()

csv.reduce(funtion,sequence)

csv.register_dialect()

csv.re 类

csv.DictWriter类

csv.DictReader类

//用pandas模块打开和操作

import pandas as pd
csvpd=pd.read_excel(filepath)
......
csvpd.to_csv(filepath)
#csvpd为pandas.DataFrame类

第三方pandas模块的常用方法属性

df:任意的Pandas DataFrame对象
s:任意的Pandas Series对象
同时我们需要做如下的引入:
import pandas as pd
import numpy as np

导入数据

pd.read_csv(filename):从CSV文件导入数据
pd.read_table(filename):从限定分隔符的文本文件导入数据
pd.read_excel(filename):从Excel文件导入数据
pd.read_sql(query, connection_object):从SQL表/库导入数据
pd.read_json(json_string):从JSON格式的字符串导入数据
pd.read_html(url):解析URL、字符串或者HTML文件,抽取其中的tables表格
pd.read_clipboard():从你的粘贴板获取内容,并传给read_table()
pd.DataFrame(dict):从字典对象导入数据,Key是列名,Value是数据

导出数据

df.to_csv(filename):导出数据到CSV文件
df.to_excel(filename):导出数据到Excel文件
df.to_sql(table_name, connection_object):导出数据到SQL表
df.to_json(filename):以Json格式导出数据到文本文件

创建测试对象

pd.DataFrame(np.random.rand(20,5)):创建20行5列的随机数组成的DataFrame对象
pd.Series(my_list):从可迭代对象my_list创建一个Series对象
df.index = pd.date_range(‘1900/1/30', periods=df.shape[0]):增加一个日期索引

查看、检查数据

df.head(n):查看DataFrame对象的前n行
df.tail(n):查看DataFrame对象的最后n行
df.shape():查看行数和列数
df.info():查看索引、数据类型和内存信息
df.describe():查看数值型列的汇总统计
s.value_counts(dropna=False):查看Series对象的唯一值和计数
df.apply(pd.Series.value_counts):查看DataFrame对象中每一列的唯一值和计数

数据选取

df[col]:根据列名,并以Series的形式返回列
df[[col1, col2]]:以DataFrame形式返回多列
s.iloc[0]:按位置选取数据
s.loc[‘index_one']:按索引选取数据
df.iloc[0,:]:返回第一行
df.iloc[0,0]:返回第一列的第一个元素

数据清理

df.columns = [‘a','b','c']:重命名列名
pd.isnull():检查DataFrame对象中的空值,并返回一个Boolean数组
pd.notnull():检查DataFrame对象中的非空值,并返回一个Boolean数组
df.dropna():删除所有包含空值的行
df.dropna(axis=1):删除所有包含空值的列
df.dropna(axis=1,thresh=n):删除所有小于n个非空值的行
df.fillna(x):用x替换DataFrame对象中所有的空值
s.astype(float):将Series中的数据类型更改为float类型
s.replace(1,'one'):用‘one'代替所有等于1的值
s.replace([1,3],[‘one','three']):用'one'代替1,用'three'代替3
df.rename(columns=lambda x: x + 1):批量更改列名
df.rename(columns={‘old_name': ‘new_ name'}):选择性更改列名
df.set_index(‘column_one'):更改索引列
df.rename(index=lambda x: x + 1):批量重命名索引

数据处理:Filter 、Sort 和 GroupBy

df[df[col] > 0.5]:选择col列的值大于0.5的行
df.sort_values(col1):按照列col1排序数据,默认升序排列
df.sort_values(col2, ascending=False):按照列col1降序排列数据
df.sort_values([col1,col2], ascending=[True,False]):先按列col1升序排列,后按col2降序排列数据
df.groupby(col):返回一个按列col进行分组的Groupby对象
df.groupby([col1,col2]):返回一个按多列进行分组的Groupby对象
df.groupby(col1)[col2]:返回按列col1进行分组后,列col2的均值
df.pivot_table(index=col1, values=[col2,col3], aggfunc=max):创建一个按列col1进行分组,并计算col2和col3的最大值的数据透视表
df.groupby(col1).agg(np.mean):返回按列col1分组的所有列的均值
data.apply(np.mean):对DataFrame中的每一列应用函数np.mean
data.apply(np.max,axis=1):对DataFrame中的每一行应用函数np.max

数据合并

df1.append(df2):将df2中的行添加到df1的尾部
df.concat([df1, df2],axis=1):将df2中的列添加到df1的尾部
df1.join(df2,on=col1,how='inner'):对df1的列和df2的列执行SQL形式的join

数据统计

df.describe():查看数据值列的汇总统计
df.mean():返回所有列的均值
df.corr():返回列与列之间的相关系数
df.count():返回每一列中的非空值的个数
df.max():返回每一列的最大值
df.min():返回每一列的最小值
df.median():返回每一列的中位数
df.std():返回每一列的标准差

以上这篇python中csv文件的若干读写方法小结就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
更改Python命令行交互提示符的方法
Jan 14 Python
详解Python3.1版本带来的核心变化
Apr 07 Python
Django的用户模块与权限系统的示例代码
Jul 24 Python
python多线程同步实例教程
Aug 11 Python
python爬虫 2019中国好声音评论爬取过程解析
Aug 26 Python
python 扩展print打印文件路径和当前时间信息的实例代码
Oct 11 Python
python访问hdfs的操作
Jun 06 Python
python中selenium库的基本使用详解
Jul 31 Python
详解python 内存优化
Aug 17 Python
Python基于Faker假数据构造库
Nov 30 Python
python 使用paramiko模块进行封装,远程操作linux主机的示例代码
Dec 03 Python
python spilt()分隔字符串的实现示例
May 21 Python
Python画柱状统计图操作示例【基于matplotlib库】
Jul 04 #Python
pandas将numpy数组写入到csv的实例
Jul 04 #Python
Python实现的简单排列组合算法示例
Jul 04 #Python
把csv文件转化为数组及数组的切片方法
Jul 04 #Python
解决python中使用plot画图,图不显示的问题
Jul 04 #Python
Django框架实现逆向解析url的方法
Jul 04 #Python
pandas 实现字典转换成DataFrame的方法
Jul 04 #Python
You might like
PHP编程最快明白(第一讲 软件环境和准备工作)
2010/10/25 PHP
php截取后台登陆密码的代码
2012/05/05 PHP
基于PHP输出缓存(output_buffering)的深入理解
2013/06/13 PHP
Zend Framework分页类用法详解
2016/03/22 PHP
thinkPHP模板算术运算相关函数用法分析
2016/07/12 PHP
Javascript单元测试框架QUnitjs详细介绍
2014/05/08 Javascript
Jquery倒计时源码分享
2014/05/16 Javascript
js实现二代身份证号码验证详解
2014/11/20 Javascript
jquery 构造函数在表单提交过程中修改数据
2015/05/25 Javascript
jQuery实现为图片添加镜头放大效果的方法
2015/06/25 Javascript
一个用jquery写的判断div滚动条到底部的方法【推荐】
2016/04/29 Javascript
jquery获取复选框checkbox的值的简单实现方法
2016/05/26 Javascript
Js删除数组中某一项或几项的几种方法(推荐)
2016/07/27 Javascript
Element-ui tree组件自定义节点使用方法代码详解
2018/09/17 Javascript
vue.js父子组件通信动态绑定的实例
2018/09/28 Javascript
JS定义函数的几种常用方法小结
2019/05/23 Javascript
ES6的异步操作之promise用法和async函数的具体使用
2019/12/06 Javascript
微信小程序搜索框样式并实现跳转到搜索页面(小程序搜索功能)
2020/03/10 Javascript
JavaScript经典案例之简易计算器
2020/08/24 Javascript
Nodejs 数组的队列以及forEach的应用详解
2021/02/25 NodeJs
[53:15]2018DOTA2亚洲邀请赛3月29日 小组赛A组 LGD VS TNC
2018/03/30 DOTA
使用Python求解最大公约数的实现方法
2015/08/20 Python
python简单实现矩阵的乘,加,转置和逆运算示例
2019/07/10 Python
django中瀑布流写法实例代码
2019/10/14 Python
浅谈图像处理中掩膜(mask)的意义
2020/02/19 Python
如何理解python中数字列表
2020/05/29 Python
利用Python实现斐波那契数列的方法实例
2020/07/26 Python
python获取命令行参数实例方法讲解
2020/11/02 Python
Kappa英国官方在线商店:服装和运动器材
2020/11/22 全球购物
面向对象设计的原则是什么
2013/02/13 面试题
采购内勤岗位职责
2013/12/10 职场文书
《称象》教学反思
2014/04/25 职场文书
市场营销调查计划书
2014/05/02 职场文书
学习党的群众路线对照检查材料
2014/09/29 职场文书
golang连接MySQl使用sqlx库
2022/04/14 Golang
Oracle查看表空间使用率以及爆满解决方案详解
2022/07/23 Oracle