csv文件是一种用,和换行符区分数据记录和字段的一种文件结构,可以用excel表格编辑,也可以用记事本编辑,是一种类excel的数据存储文件,也可以看成是一种数据库.
一、用DataFrame对象.to_csv()方法来保存数据成csv文件
DataFrame 数据的保存和读取:
df.to_csv 写入到 csv 文件
pd.read_csv 读取 csv 文件
df.to_json 写入到 json 文件
pd.read_json 读取 json 文件
df.to_html 写入到 html 文件
pd.read_html 读取 html 文件
df.to_excel 写入到 excel 文件
pd.read_excel 读取 excel 文件
DataFrame.to_csv(path_or_buf=None, sep=', ', na_rep='', float_format=None, columns=None, header=True, index=True,index_label=None, mode='w', encoding=None, compression=None, quoting=None, quotechar='"',line_terminator='\n', chunksize=None, tupleize_cols=None, date_format=None, doublequote=True,escapechar=None, decimal='.')
参数:
path_or_buf : 文件路径,如果没有指定则将会直接返回字符串的 json
sep : 输出文件的字段分隔符,默认为 “,”
na_rep : 用于替换空数据的字符串,默认为’’
float_format : 设置浮点数的格式(几位小数点)
columns : 要写的列
header : 是否保存列名,默认为 True ,保存
index : 是否保存索引,默认为 True ,保存
index_label : 索引的列标签名
二、pd.read_csv()方法来读取csv文件
pandas提供了pd.read_csv()方法可以读取其中的数据并且转换成DataFrame数据帧。python的强大之处就在于他可以把不同的数据库类型,比如txt/csv/.xls/.sql转换成统一的DataFrame格式然后进行统一的处理。真是做到了标准化。我们可以用以下代码来演示csv文件的读取操作。
import pandas as pddata1 = pd.read_csv('rating.csv')print(data1)print("************取消第一行作为表头*************")data2 = pd.read_csv('rating.csv',header=None)print(data2)print("************为各个字段取名**************")data3 = pd.read_csv('rating.csv',names=['user_id','book_id','rating'])print(data3)print("***********将某一字段设为索引***************")data3 = pd.read_csv('rating.csv',names=['user_id','book_id','rating'],index_col = "user_id")print(data3)print("************用sep参数设置分隔符**************")data4 = pd.read_csv('rating.csv',names=['user_id','book_id','rating'],sep=',')print(data4)print("************自动补全缺失数据为NaN**************")data5 = pd.read_csv('data.csv',header=None)print(data5)
输出结果如下:
1 258 50 2 4081 41 2 260 52 2 9296 53 2 2318 34 2 26 45 2 315 36 2 33 47 2 301 5************取消第一行作为表头*************01 20 1 258 51 2 4081 42 2 260 53 2 9296 54 2 2318 35 2 26 46 2 315 37 2 33 48 2 301 5************为各个字段取名**************user_id book_id rating0 1258 51 24081 42 2260 53 29296 54 22318 35 2 26 46 2315 37 2 33 48 2301 5***********将某一字段设为索引***************book_id ratinguser_id 1 258 52 4081 42 260 52 9296 52 2318 32 26 42 315 32 33 42 301 5************用sep参数设置分隔符**************user_id book_id rating0 1258 51 24081 42 2260 53 29296 54 22318 35 2 26 46 2315 37 2 33 48 2301 5************自动补全缺失数据为NaN**************0 1 23 40 1 2.0 3 4.0 51 6 7.0 8 NaN 102 11 NaN 13 14.0 15[Finished in 4.5s]
输出结果的具体解释参考代码中的注释。