概述
摘要
python读取外部csv格式数据,【此处数据非大数据(>6TB),读取大数据利用分段方法】
主要介绍使用python自带的函数read、readlines读取数据转换为数据框,和使用pandas自带的函数read_csv读取csv数据的对比
1、readlines函数读取数据
数据是csv格式,按readlines读取时,每次读取一行,并且把这一行数据作为一个字符串对象;
file="train.csv"
with open(file) as f:
row=[]
for line in f.readlines():
v=list(line.strip().split(","))
row.append(v)
train=pd.DataFrame(row,columns=row[0])
如下,若csv文件如下:
name | age | height |
xiaohong | 18 | 90 |
xiaobai | 20 | 100 |
ming | 20 | NA |
用readlines读取的数据是
['name,age,height','xiaohong,18,90','xiaobai,20,100','ming,20,NA']
代码v=list(line.strip().split(","))的作用很重要
v=list(line.strip().split(","))
#使得f中的每一个变量都变成列表形式,
即将['name,age,height','xiaohong,18,90','xiaobai,20,100']
逐个变为[[name,age,height],[xiaohong,18,90],[xiaobai,20,100],[ming,20,NA]]
如果没有这条语句,则数据框train将是4行1列
2、csv模块读取csv文件
csv.reader(csvfile, dialect='excel', **fmtparams):
该函数返回一个reader对象,该对象可以迭代csv文件中的每一行,csv文件可以是任意支持iteratior协议的对象。每次调用它的__next__()方法(文件对象和列表对象都适用的方法),该对象返回一个字符串。从csv文件读取的每一行,都以列表的形式返回。
参数解释:
csvfile:可以是任何支持迭代器协议的对象,它每次返回一个字符串。如果它是一个文件对象,它应该以newline=''的形式打开(参照样例).
dialect:是一个可选参数,用来定义一个仅针对特定CSV dialect的参数集。它可能是一个Dialect类的子类实例或由list_dialects()返回的多个字符串中的一个。其实这个看你想以什么规范操作csv文件,可选的参数有三个,分别是excel,excel-tab和unix,基本用不着该这个参数。
delimiter:这个参数是用来指明分割符的,多数csv文件的分隔符是英文逗号,但是万一有文件整点幺蛾子
咋整,比如把英文冒号当分割符,那就要把这个参数指明为:delimiter=’:’
quotechar:这个参数指明了引用符
#使用内置csv模块读取数据
start=datetime.datetime.now()
with open(r"C:UserstitixDesktop医保欺诈 5算法模型test_c.csv",'r',encoding='utf-8') as f:
file=csv.reader(f)
header = next(file)
data=[line for line in file]
end=datetime.datetime.now()
print(end-start)
#将列表数据变成数据框
data=pd.DataFrame(data,header)
查看数据框
data
在上面代码中,采用序列生成器将迭代器中的序列生成列表data=[line for line in file],还可以采用for循环对列表进行末尾添加元素的方式,将迭代器中的数据写到列表中。
start=datetime.datetime.now()
data=[]
with open(r"C:UserstitixDesktop医保欺诈 5算法模型test_c.csv",'r',encoding='utf-8') as f:
file=csv.reader(f)
# header = next(file)
for line in file:
data.append(line)
end=datetime.datetime.now()
print(end-start)
3、pandas中read_csv读去csv数据
最后
以上就是畅快星月为你收集整理的试验python读取外部数据的几种方式的全部内容,希望文章能够帮你解决试验python读取外部数据的几种方式所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复