numpy和pandas读写文件-详细介绍

numpy和pandas读写文件

  • 一、numpy读写文件
    • 1.1 save和load函数
    • 1.2 读写TXT或CSV文件(savetxt,loadtxt)
  • 二、pandas读写文本文件
    • 2.1 read_table和read_csv读写文件
    • 2.2 to_csv存储文本文件

一、numpy读写文件

numpy读写文件主要有二进制文件和文件列表形式读写两种形式。

1.1 save和load函数

save函数以二进制的格式保存数据
np.save(file,arr,allow_pickle=True,fix_imports=True)
file: 保存的文件名字,需要指定路径,否则保存在默认路径下(当前目录)
arr:保存的数组,扩展名为.npy是系统自动添加的。

import numpy as np
arr = np.arange(100).reshape(10,10)
np.save('arr_save',arr)
print(arr)

如果保存多个数组,使用函数savez,其文件扩展名为.npz

import numpy as np
arr1 = np.array([[1,2,3],[2,3,4]])
arr2 = np.array(0,1.0,0.1)
np.savez('arr_savezz',arr1,arr2)
print(arr1,arr2)

load函数读取二进制文件。

data = np.load('arr_save.npy')
print(data)

注:存储时可以省略扩展名,但是读取时不能省略扩展名

1.2 读写TXT或CSV文件(savetxt,loadtxt)

savetxt函数
np.savetxt(fname, x, delimiter=' ', newline='\n',header=' ', footer='',comments='#')
fname:文件名
x:数组数据
delimiter: 数据分隔符

loadtxt函数执行的是相反的操作

arr = np.arange(0,12,1).reshape(4,-1)
# fmt = '%d':保存为整数
np.savetxt('arr.txt',arr,fmt='%d',delimiter=',')
data = np.loadtxt('arr.txt',delimiter=',')
print(data)

二、pandas读写文本文件

2.1 read_table和read_csv读写文件

CSV文件根据其定义是一种文本文件,在数据读取工程中可以使用文本文件的读取函数对CSV文件进行读取。同时,如果文本文件是字符分隔符,也可以使用上述函数读取。pandas提供了read_table来读取文本文件,提供了read_csv来读取CSV文件。

# read_table 函数
pandas.read_table(filepath, sep='\t', header='None', names=None, index_col=None, dtype=None, encoding=utf-8, engine=None, nrows=None)

filepath:接收string,文件路径
sep:分隔符,默认为“Tab”
header:接收int或者sequence,某行数据的列名,默认为infer,表示自动识别
names:接收array,表示列名,默认为None
index_col:接收int,False或者sequence。表示列索引的位置,默认为None。
dtype:接收dict,代表写入的数据类型(列名为key,数据格式为values),默认为None。
engine:接收c或者python。代表数据解析引擎,默认为c。
nrow:接收int,表示读取前n行,默认为None。

# read_csv 函数
pandas.read_csv(filepath, sep='\t', header='None', names=None, index_col=None, dtype=None, encoding=utf-8, engine=None, nrows=None)

filepath:接收string,文件路径
sep:分隔符,默认为“,”
header:接收int或者sequence,某行数据的列名,默认为infer,表示自动识别
names:接收array,表示列名,默认为None
index_col:接收int,False或者sequence。表示列索引的位置,默认为None。
dtype:接收dict,代表写入的数据类型(列名为key,数据格式为values),默认为None。
engine:接收c或者python。代表数据解析引擎,默认为c。
nrow:接收int,表示读取前n行,默认为None。


:read_table函数和read_csv函数中的sep都是指定文本的分隔符,如果分隔符指定错误,读取的文件数据将会连成一片。header是用来指定列名的,如果是None,则会添加一个默认的列名。encoding代表文件的编码格式,常用的有UTF-8,UTF-16,GBK等。

2.2 to_csv存储文本文件

文本文件的储存和读取是类似的,对于结构化数据,可以用pandas中的to_csv函数来实现以CSV文件格式储存。

import pandas as pd
from pandas import DataFrame

DataFrame.to_csv(path, sep=',', na_rap='', columns=None, header=True, index=True, index_label=None, mode='w', encoding=None)

path:接收string,文件路径
sep:分隔符,默认为“,”
na_rap:接收string,代表缺失值,默认为“”
columns:接收list,代表写出的列名,默认为None。
header:接收Boolean,某行数据的列名,默认为infer,表示自动识别
index:接收Boolean,代表是否将列名写出,默认为True。
index_col:接收Boolean。表示列索引的位置,默认为None。
mode:接收待定string,代表数据写入模式,默认为w。
engine:接收c或者python。代表数据解析引擎,默认为c。

你可能感兴趣的:(数据分析,python,numpy,csv,数据分析,pandas)