csv文件是一种用,和换行符区分数据记录和字段的一种文件结构,可以用excel表格编辑,也可以用记事本编辑,是一种类excel的数据存储文件,也可以看成是一种数据库.
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 : 索引的列标签名
pandas提供了pd.read_csv()方法可以读取其中的数据并且转换成DataFrame数据帧。python的强大之处就在于他可以把不同的数据库类型,比如txt/csv/.xls/.sql转换成统一的DataFrame格式然后进行统一的处理。真是做到了标准化。我们可以用以下代码来演示csv文件的读取操作。
import pandas as pd
data1 = 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 5
0 2 4081 4
1 2 260 5
2 2 9296 5
3 2 2318 3
4 2 26 4
5 2 315 3
6 2 33 4
7 2 301 5
************取消第一行作为表头*************
0 1 2
0 1 258 5
1 2 4081 4
2 2 260 5
3 2 9296 5
4 2 2318 3
5 2 26 4
6 2 315 3
7 2 33 4
8 2 301 5
************为各个字段取名**************
user_id book_id rating
0 1 258 5
1 2 4081 4
2 2 260 5
3 2 9296 5
4 2 2318 3
5 2 26 4
6 2 315 3
7 2 33 4
8 2 301 5
***********将某一字段设为索引***************
book_id rating
user_id
1 258 5
2 4081 4
2 260 5
2 9296 5
2 2318 3
2 26 4
2 315 3
2 33 4
2 301 5
************用sep参数设置分隔符**************
user_id book_id rating
0 1 258 5
1 2 4081 4
2 2 260 5
3 2 9296 5
4 2 2318 3
5 2 26 4
6 2 315 3
7 2 33 4
8 2 301 5
************自动补全缺失数据为NaN**************
0 1 2 3 4
0 1 2.0 3 4.0 5
1 6 7.0 8 NaN 10
2 11 NaN 13 14.0 15
[Finished in 4.5s]
输出结果的具体解释参考代码中的注释。