利用python对csv的读写

2019-02-21  本文已影响0人  tianzhanlan

利用pandas读写csv

pandas写入csv
import pandas as pd
#任意的多组列表
a = [1,2,3]
b = [4,5,6]    
#字典中的key值即为csv中列名
dataframe = pd.DataFrame({'a_name':a,'b_name':b})
#将DataFrame存储为csv,index表示是否显示行名,default=True
dataframe.to_csv("test.csv",index=False,sep=',')

具体结构如下:

    a_name   b_name
0       1       4
1       2       5
2       3       6
pandas也提供简单的读csv方法
import pandas as pd
#括号中还可以添加其他参数
data = pd.read_csv('test.csv')
默认参数读取csv文件,会自动加上行索引,即使原数据集有行索引: image.png

当设置参数header=None时,即指明原始文件数据没有列索引,这样read_csv为自动加上列索引,除非你给定列索引的名字。

import pandas as pd
#括号中还可以添加其他参数
data = pd.read_csv('test.csv',header=None,names=['a','b'])
header=None时,即指明原始文件数据没有列索引,这样read_csv为自动加上列索引,即0、1、2 ......,也可以设定索引名字names=['a','b'],具体结果如下图: image.png

header=0时,表示文件第0行(即第一行)为列索引,这样加names会替换原来的列索引。

import pandas as pd
#括号中还可以添加其他参数
data = pd.read_csv('test.csv',header=0,names=['a','b'])
具体结果如下图: image.png

csv包读写csv

写入csv,该包的writer写入类似writelines(),一行行写入
import csv
#python2可以用file替代open
with open("test.csv","w") as csvfile: 
    writer = csv.writer(csvfile)

    #先写入columns_name
    writer.writerow(["index","a_name","b_name"])
    #写入多行用writerows
    writer.writerows([[0,1,3],[1,2,3],[2,3,4]])
读取csv文件用reader
import csv
with open("test.csv","r") as csvfile:
    reader = csv.reader(csvfile)
    #这里不需要readlines
    for line in reader:
        print(line)
上一篇 下一篇

猜你喜欢

热点阅读