Python操作CSV格式文件的方法大全
(一)CSV格式文件1.说明CSV是一种以逗号分隔数值的文件类型在数据库或电子表格中常见的导入导出文件格式就是CSV格式CSV格式存储数据通常以纯文本的方式存数数据表。(二)CSV库操作csv格式文本操作一下表格数据1.读取表头的2中方式1234567891011121314151617#方式一importcsvwithopen(D:\\test.csv) as f:readercsv.reader(f)rows[rowforrowinreader]print(rows[0])----------#方式二importcsvwithopen(D:\\test.csv) as f:#1.创建阅读器对象readercsv.reader(f)#2.读取文件第一行数据head_rownext(reader)print(head_row)结果演示[姓名, 年龄, 职业, 家庭地址, 工资]2.读取文件某一列数据123456#1.获取文件某一列数据importcsvwithopen(D:\\test.csv) as f:readercsv.reader(f)column[row[0]forrowinreader]print(column)结果演示[姓名, 张三, 李四, 王五, Kaina]3.向csv文件中写入数据1234567#1.向csv文件中写入数据importcsvwithopen(D:\\test.csv,a) as f:row[曹操,23,学生,黑龙江,5000]writecsv.writer(f)write.writerow(row)print(写入完毕)结果演示4.获取文件头及其索引12345678910importcsvwithopen(D:\\test.csv) as f:#1.创建阅读器对象readercsv.reader(f)#2.读取文件第一行数据head_rownext(reader)print(head_row)#4.获取文件头及其索引forindex,column_headerinenumerate(head_row):print(index,column_header)结果演示[姓名, 年龄, 职业, 家庭地址, 工资]0 姓名1 年龄2 职业3 家庭地址4 工资5.获取某列的最大值123456789101112# [姓名, 年龄, 职业, 家庭地址, 工资]importcsvwithopen(D:\\test.csv) as f:readercsv.reader(f)header_rownext(reader)# print(header_row)salary[]forrowinreader:#把第五列数据保存到列表salary中salary.append(int(row[4]))print(salary)print(员工最高工资为str(max(salary)))结果演示员工最高工资为100006.复制CSV格式文件原文件test.csv1234567891011importcsvfopen(test.csv)#1.newline消除空格行aim_fileopen(Aim.csv,w,newline)writecsv.writer(aim_file)readercsv.reader(f)rows[rowforrowinreader]#2.遍历rows列表forrowinrows:#3.把每一行写到Aim.csv中write.writerow(row)01.未添加关键字参数newline 的结果02添加关键字参数newline 的Aim.csv文件的内容(三)pandas库操作CSV文件csv文件内容1.安装pandas库pip install pandas2.读取csv文件所有数据12345importpandas as pdpathD:\\test.csvwithopen(path)asfile:datapd.read_csv(file)print(data)结果演示姓名 年龄 职业 家庭地址 工资0 张三 22 厨师 北京市 60001 李四 26 摄影师 湖南长沙 80002 王五 28 程序员 深圳 100003 Kaina 22 学生 黑龙江 20004 曹操 28 销售 上海 60003.describe()方法数据统计123456importpandas as pdpathD:\\test.csvwithopen(path)asfile:datapd.read_csv(file)#了解更多describe()知识ctr鼠标左键print(data.describe())结果演示年龄 工资count 5.00000 5.000000mean 25.20000 6400.000000std 3.03315 2966.479395min 22.00000 2000.00000025% 22.00000 6000.00000050% 26.00000 6000.00000075% 28.00000 8000.000000max 28.00000 10000.0000004.读取文件前几行数据12345678importpandas as pdpathD:\\test.csvwithopen(path)asfile:datapd.read_csv(file)#读取前2行数据# head_datas data.head(0)head_datasdata.head(2)print(head_datas)结果演示姓名 年龄 职业 家庭地址 工资0 张三 22 厨师 北京市 60001 李四 26 摄影师 湖南长沙 80005.读取某一行所有数据123456importpandas as pdpathD:\\test.csvwithopen(path)asfile:datapd.read_csv(file)#读取第一行所有数据print(data.ix[0,])结果演示姓名 张三年龄 22职业 厨师家庭地址 北京市工资 60006.读取某几行的数据123456importpandas as pdpathD:\\test.csvwithopen(path)asfile:datapd.read_csv(file)#读取第一行、第二行、第四行的所有数据print(data.ix[[0,1,3],:])结果演示姓名 年龄 职业 家庭地址 工资0 张三 22 厨师 北京市 60001 李四 26 摄影师 湖南长沙 80003 Kaina 22 学生 黑龙江 20007.读取所有行和列数据123456importpandas as pdpathD:\\test.csvwithopen(path)asfile:datapd.read_csv(file)#读取所有行和列数据print(data.ix[:,:])结果演示姓名 年龄 职业 家庭地址 工资0 张三 22 厨师 北京市 60001 李四 26 摄影师 湖南长沙 80002 王五 28 程序员 深圳 100003 Kaina 22 学生 黑龙江 20004 曹操 28 销售 上海 60008.读取某一列的所有行数据123456importpandas as pdpathD:\\test.csvwithopen(path)asfile:datapd.read_csv(file)# print(data.ix[:, 4])print(data.ix[:,工资])结果演示0 60001 80002 100003 20004 6000Name: 工资, dtype: int649.读取某几列的某几行12345importpandas as pdpathD:\\test.csvwithopen(path)asfile:datapd.read_csv(file)print(data.ix[[0,1,3],[姓名,职业,工资]])结果演示姓名 职业 工资0 张三 厨师 60001 李四 摄影师 80003 Kaina 学生 200010.读取某一行和某一列对应的数据123456importpandas as pdpathD:\\test.csvwithopen(path)asfile:datapd.read_csv(file)#读取第三行的第三列print(职业---data.ix[2,2])结果演示职业---程序员11.CSV数据的导入导出(复制CSV文件)读方式01123importpandas as pd#1.读入数据datapd.read_csv(file)写出数据02123importpandas as pd#1.写出数据目标文件是Aim.csvdata.to_csv(Aim.csv)其他123456789101101.读取网络数据importpandas as pddata_urlhttps://raw.githubusercontent.com/mwaskom/seaborn-data/master/tips.csv#填写url读取dfpd.read_csv(data_url)----------02.读取excel文件数据importpandas as pddatapd.read_excel(filepath)实例演示1.test.csv原文件内容2.现在把test.csv中的内容复制到Aim.csv中1234567importpandas as pdfileopen(test.csv)#1.读取file中的数据datapd.read_csv(file)#2.把data写到目标文件Aim.csv中data.to_csv(Aim.csv)print(data)结果演示注pandas模块处理Excel文件和处理CSV文件差不多