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 相关文章推荐
一则python3的简单爬虫代码
May 26 Python
Python中几种操作字符串的方法的介绍
Apr 09 Python
Python卸载模块的方法汇总
Jun 07 Python
Mac中升级Python2.7到Python3.5步骤详解
Apr 27 Python
关于反爬虫的一些简单总结
Dec 13 Python
Python 16进制与中文相互转换的实现方法
Jul 09 Python
利用Django-environ如何区分不同环境
Aug 26 Python
Django学习笔记之为Model添加Action
Apr 30 Python
零基础使用Python读写处理Excel表格的方法
May 02 Python
Python基本数据结构之字典类型dict用法分析
Jun 08 Python
python opencv minAreaRect 生成最小外接矩形的方法
Jul 01 Python
python opencv人脸识别考勤系统的完整源码
Apr 26 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/04/06 PHP
发一个php简单的伪原创程序,配合商城采集用的
2010/10/12 PHP
PHP取整数函数常用的四种方法小结
2012/07/05 PHP
深入解析PHP垃圾回收机制对内存泄露的处理
2013/06/14 PHP
PHP限制HTML内容中图片必须是本站的方法
2015/06/16 PHP
php检测mysql表是否存在的方法小结
2017/07/20 PHP
PHP实现字符串大小写转函数的功能实例
2019/02/06 PHP
PHP获取当前时间不准确问题解决方案
2020/08/14 PHP
脚本之家贴图转换+转贴工具用到的js代码超级推荐
2007/04/05 Javascript
JavaScript 仿关机效果的图片层
2008/12/26 Javascript
Jquery 表单取值赋值的一些基本操作
2009/10/11 Javascript
jquery中实现标签切换效果的代码
2011/03/01 Javascript
有关于JS构造函数的重载和工厂方法
2013/04/07 Javascript
JSON 对象未定义错误的解决方法
2016/09/29 Javascript
Highcharts+NodeJS搭建数据可视化平台示例
2017/01/01 NodeJs
bootstrap的常用组件和栅格式布局详解
2017/05/02 Javascript
vue路由嵌套的SPA实现步骤
2017/11/06 Javascript
react-navigation 如何判断用户是否登录跳转到登录页的方法
2017/12/01 Javascript
vue异步axios获取的数据渲染到页面的方法
2018/08/09 Javascript
vue弹窗组件的实现示例代码
2018/09/10 Javascript
使用Vant完成通知栏Notify的提示操作
2020/11/11 Javascript
python共享引用(多个变量引用)示例代码
2013/12/04 Python
全面解读Python Web开发框架Django
2014/06/30 Python
Python实现的Excel文件读写类
2015/07/30 Python
朴素贝叶斯分类算法原理与Python实现与使用方法案例
2018/06/26 Python
解决pycharm运行时interpreter为空的问题
2018/10/29 Python
python爬虫实现中英翻译词典
2019/06/25 Python
html5使用canvas画空心圆与实心圆
2014/12/15 HTML / CSS
Html5新标签datalist实现输入框与后台数据库数据的动态匹配
2017/05/18 HTML / CSS
幼儿园亲子活动方案
2014/01/29 职场文书
趣味运动会策划方案
2014/06/02 职场文书
离职信范本
2015/06/23 职场文书
趣味运动会标语口号
2015/12/26 职场文书
能让Python提速超40倍的神器Cython详解
2021/06/24 Python
python树莓派通过队列实现进程交互的程序分析
2021/07/04 Python
「海贼王」112.9万粉丝纪念图标公布
2022/03/21 日漫