概述
在实际应用中我们进行数据处理与分析时,往往涉及大量的表格。一般来说,使用Python的专业数据分析处理工具包,完全可以胜任我们的大多数需求,比如Numpy+Pandas。但是有时候往往我们对表格数据的操作是很简单的,不需要太过复杂的操作,所以使用专业的数据分析工具包,有点杀鸡用牛刀的感觉。如果没有接触过专业数据分析工具,光是学习成本就不小,但是你可能仅仅需要对若干表格数据做个平均值之类的操作,属实浪费时间了。
因而,我们针对表格操作,设计了一套非常简易的操作方案,适合小白和简单表格程序化处理。所有的二维表格数据,我们都转换为Python里面的二维列表进行操作,这种方式简单直观,易于灵活处理,最重要的是非常节省精力和时间,从而把工作重心放在关键的地方。
基础
csv⽂件其实就是普通⽂本⽂件,遵循了⼀定的格式。常⻅的csv⽂件⼀般是⽤逗号来隔开列,⽤换⾏符隔开不同的⾏,注意这⾥的符号都是英⽂符号。因而,我们可以直接用文本处理的方式直接处理csv⽂件,但为了简单和省事,我们采用了csv库辅助处理。
图例:记事本打开csv文件
图例:WPS打开csv文件
毫无疑问,csv文件是最简单的表格文件,xls与xlsx文件比csv文件复杂得多,但简单的表格数据处理一般不涉及复杂的表格操作,因而可以借助表格处理软件(如WPS)进行这两类表格文件的转换。
代码
import csv
# 读入CSV文件,返回二维数据列表
def ReadCSV(path):
csv_sheet = [] # 若读取失败,则返回空列表,否则返回二维列表
with open(path, 'r', encoding='utf-8') as f:
data = csv.reader(f)
for row in data:
csv_sheet.append(row)
return csv_sheet
# 写出CSV文件,传递输出路径和二维数据列表
def WriteCSV(path, csv_sheet):
with open(path, 'w', newline="") as f:
data = csv.writer(f)
for row in csv_sheet:
data.writerow(row)
return True
return False
sheet_in = ReadCSV("input.csv")
print(sheet_in)
sheet_out = [[1, 2, 3], [3, 2, 1]]
result = WriteCSV("output.csv", sheet_out)
if not result:
print("文件写出失败!")
运行
附属
input.csv文件内容:
姓名,年龄,性别
张三,15,男
小红,17,女
李四,19,男
output.csv文件内容
1,2,3
3,2,1