csv文件是常见的数据存储格式,经常用它来保存大量的实验数据。为了便于分析,需要将其导入Python中进行进一步的处理,并在处理之后重新输出为csv文件。下面就来介绍利用Python对单个csv文件进行导入与输出操作,以及对多个csv文件按顺序进行批量的导入和输出操作。

  1. 单个csv文件的导入
import pandas as pd

data = pd.read_csv(data_path)
data_lists = data.values.tolist()

这样就可以将csv导入并转化为list的形式供后续处理。

  1. 单个csv文件的导出
import pandas as pd

name = ["A", "B", "C"]#此处依次输入表头
data_output = pd.DataFrame(columns=name, data=data_lists)
data_output.to_csv(save_path)
  1. 多个csv文件的顺序导入

有时候会碰到在一个文件夹里有多个名字类似、带有编号的csv文件需要批量导入,这时候就需要引入glob库,但glob.glob或glob.iglob导入文件并不是按照编号由小到大的顺序导入的(在Ubuntu系统中是乱序的,据说在Windows里是顺序导入的,欢迎小伙伴试一试然后在评论区留言一下结果),因此需要使用sorted将导入的文件名按照我们想要的方式进行排序。具体代码如下:

import pandas as pd
import glob

files = glob.glob(r"./data/*.csv")
files_sorted = sorted(files, key=lambda x: (int(x[22:24]),int(x[25:27]),int(x[28:30]),int(x[31:33]),int(x[34:36])))
for file in files_sorted:
	data = pd.read_csv(file)
	data_list = data.values.tolist()

其中,关于csv名字导入的多种形式以及glob的进阶用法,参见:
glob.glob() 函数

关于sorted函数的具体用法,参见:
Python3 sorted() 函数

  1. 多个csv文件的导出

有时候需要以某个特征对csv文件进行拆分,我个人比较推荐将数据存到字典里,key就是那个特征,value就是对应的list。批量输出的具体代码如下:

name = ["A", "B", "C", "D"]
for key, val in data_dict.items():
	data = pd.DataFrame(columns=name, data=val)
	data.to_csv("data_ID/"+str(key)+".csv")
Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐