【Python】读写CSV文件


简单介绍如何读写CSV文件


1、读CSV

两种方法,用pandas的read_csv函数读,和用Python的读文件open读。

1.1 用函数pandas.read_csv读

如果你知道CSV文件的列属性,可以直接用pd.read_csv读取后,用列属性得到想要的内容:

如下例子中,是获取列属性acc大于0.7的所有记录。

import pandas as pd
df = pd.read_csv('table.csv')
case = df[df.acc < 0.7]

1.2 用reader读

直接用csv中的reader读。


import csv
file = open("Data.csv", "r")
reader = csv.reader(file)  #返回迭代类型
data = []
for item in reader:
    print(item)
    data.append(item)
print(data)
csvFile.close()
1.3 用open函数读

用open读就跟普通文件读一样。CSV一行中,每列使用逗号分隔的。

例如下面例子中,读取了每一行到一个list,然后根据逗号对string分片。

merge_class = open("file.csv", "r")
lines = merge_class.readlines()
dict = defaultdict(list)
for j in range(len(lines)):
    line = re.split(r"[\,]", lines[j])
    dict[line[0]].append(line[1])

2、写CSV

2.1 用to_csv写

如果你用pandas.DataFrame创建了一个csv对象,规定了列属性,就可以用to_csv写入。如下。

import pandas as pd
df = pd.read_csv('table.csv')
case = df[df.acc < 0.7]
print type(case)
print case
file = pd.DataFrame(case, columns=['label', 'acc'])
file.to_csv('cases.csv')
2.2 用csv.writer写

可以定义一个writer,然后就可以每次向文件中写入一行,注意的是,如果有多列,这一行的字符串要用逗号分隔。

import csv
flabel = open("label.txt", "r")
file = open("file.csv", "w", newline='')#newline是防止两行中间空一行
writer = csv.writer(file)
lines = flabel.readlines()
for i in range(len(lines)):
    line = re.split(r"[\s\n]", lines[i])
    writer.writerow(line[0:len(line)-1])
2.3 其他

暂时就先这样吧。


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值