pythoncsv⽂件数据写⼊和读取(适⽤于超⼤数据量)
⽂章⽬录
python csv⽂件数据写⼊和读取(适⽤于超⼤数据量)
⼀般情况下由于我们使⽤的数据量⽐较⼩,因此可以将数据⼀次性整体读⼊或者写⼊,⽽且可以⼀次性对数据进⾏加⼯和处理。
但是当数据量⽐较⼤,⽐如有5G的数据量,这个时候想要⼀次性对所有数据进⾏操作就⽐较困难了。所以需要逐条将数据进⾏处理。import csv
# 在最开始创建csv⽂件,并写⼊列名。相当于做⼀些准备⼯作
with open(savepath, 'w') as csvfile: #以写⼊模式打开csv⽂件,如果没有csv⽂件会⾃动创建。
writer = csv.writer(csvfile)
# writer.writerow(["index","a_name","b_name"]) # 写⼊列名,如果没有列名可以不执⾏这⼀⾏
# writer.writerows([[0, 1, 3], [1, 2, 3], [2, 3, 4]]) # 写⼊多⾏⽤writerows
#如果你的数据量很⼤,需要在循环中逐⾏写⼊数据
for i in range(100000):
with open(savepath, 'a+', newline='') as csvfile: # a+表⽰以追加模式写⼊,如果⽤w会覆盖掉原来的数据。如果没有newline='',则逐⾏写⼊的数据相邻⾏之间会出现⼀⾏空⽩。读者可以⾃⼰试⼀试。
csv_write = csv.writer(csvfile)
csv_write.writerow(row_data) # 写⼊1⾏⽤writerow; row_data是你要写⼊的数据,最好是list类型。
f = open(savepath)
csv_read = ader(f)
for line in csv_read: # ader(f)返回⼀个迭代器。迭代器的好处就是可以不⽤⼀次性将⼤量的数据都读进来,⽽是如果你需要⼀条,就给迭代器⼀个命令让它输出⼀条。关于迭代器的优点读者可以另⾏学习。
print line
需要注意从csv⽂件读出来的数据是字符串,不是浮点数。使⽤float(str)完成转换。
# 也可以使⽤pandas读取csv⽂件
import pandas as pd
data = pd.read_csv(filepath, head=None, encoding='utf-8') #data是⼀个dataframe对象
# 关于read_csv函数,这⾥并不做详细讲解。
python怎么读csv数据data = data.values().astype('float32') #将dataframe转换为数值矩阵
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论