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中optparse模块使用浅析
Jan 01 Python
从Python程序中访问Java类的简单示例
Apr 20 Python
Python检测网络延迟的代码
May 15 Python
解决DataFrame排序sort的问题
Jun 07 Python
对pandas中iloc,loc取数据差别及按条件取值的方法详解
Nov 06 Python
详解用python写一个抽奖程序
May 10 Python
关于多元线性回归分析——Python&SPSS
Feb 24 Python
Python: tkinter窗口屏幕居中,设置窗口最大,最小尺寸实例
Mar 04 Python
解析pip安装第三方库但PyCharm中却无法识别的问题及PyCharm安装第三方库的方法教程
Mar 10 Python
python中pandas库中DataFrame对行和列的操作使用方法示例
Jun 14 Python
M1芯片安装python3.9.1的实现
Feb 02 Python
pytorch显存一直变大的解决方案
Apr 08 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检查网站是否宕机的方法示例
2017/07/24 PHP
PHP学习笔记之session
2018/05/06 PHP
javascript 火狐(firefox)不显示本地图片问题解决
2008/07/05 Javascript
js tab 选项卡
2009/04/26 Javascript
javascript开发技术大全-第1章javascript概述
2011/07/03 Javascript
使用jquery.upload.js实现异步上传示例代码
2014/07/29 Javascript
异步安全加载javascript文件的方法
2015/07/21 Javascript
jQuery 3.0 的变化及使用方法
2016/02/01 Javascript
Javascript之Date对象详解
2016/06/07 Javascript
JS实现的手机端精简幻灯片效果
2016/09/05 Javascript
AngularJS自定义控件实例详解
2016/12/13 Javascript
详解Vue 事件驱动和依赖追踪
2017/04/22 Javascript
利用yarn代替npm管理前端项目模块依赖的方法详解
2017/09/04 Javascript
在Angular中使用JWT认证方法示例
2018/09/10 Javascript
jquery获取img的src值实例介绍
2019/01/16 jQuery
JavaScript数组、json对象、eval()函数用法实例分析
2019/02/21 Javascript
js实现通过开始结束控制的计时器
2019/02/25 Javascript
[00:20]DOTA2荣耀之路7:-ah fu-抢盾
2018/05/31 DOTA
Python发送Email方法实例
2014/08/21 Python
Python最小二乘法矩阵
2019/01/02 Python
Python解释器及PyCharm工具安装过程
2020/02/26 Python
在pycharm中创建django项目的示例代码
2020/05/28 Python
浅谈Python中的模块
2020/06/10 Python
python如何更新包
2020/06/11 Python
如何将anaconda安装配置的mmdetection环境离线拷贝到另一台电脑
2020/10/15 Python
python中的插入排序的简单用法
2021/01/19 Python
CSS3关于z-index不生效问题的解决
2020/02/19 HTML / CSS
HTML5本地存储和本地数据库实例详解
2017/09/05 HTML / CSS
Linux文件系统类型
2012/09/16 面试题
审计工作个人的自我评价
2013/12/25 职场文书
学校标语大全
2014/06/19 职场文书
音乐教师个人总结
2015/02/06 职场文书
2015初中团支部工作总结
2015/07/21 职场文书
浅析Python中的随机采样和概率分布
2021/12/06 Python
Vue全局事件总线你了解吗
2022/02/24 Vue.js
小喇叭开始广播了! 四十多年前珍贵老照片
2022/05/09 无线电