第九篇,数据分析之pandas的文件读写操作

mac2025-04-18  7

CSV文件

大部分人都是使用的csv的文件,我就先写关于csv文件的读写,首先两个模块都要导入: import pandas as pd import numpy as np

help(pd.read_csv) #查看帮助文档 read_csv(filepath_or_buffer: Union[str, pathlib.Path, IO[~AnyStr]], sep=',', delimiter=None, header='infer', names=None, index_col=None, usecols=None, squeeze=False, prefix=None, mangle_dupe_cols=True, dtype=None, engine=None, converters=None, true_values=None, false_values=None, skipinitialspace=False, skiprows=None, skipfooter=0, nrows=None, na_values=None, keep_default_na=True, na_filter=True, verbose=False, skip_blank_lines=True, parse_dates=False, infer_datetime_format=False, keep_date_col=False, date_parser=None, dayfirst=False, cache_dates=True, iterator=False, chunksize=None, compression='infer', thousands=None, decimal=b'.', lineterminator=None, quotechar='"', quoting=0, doublequote=True, escapechar=None, comment=None, encoding=None, dialect=None, error_bad_lines=True, warn_bad_lines=True, delim_whitespace=False, low_memory=True, memory_map=False, float_precision=None)

还有一些其他的文件读取可以参考文件的读写操作

先写读取csv文件

a = {'money':[100,109.2,198,158,134.9], 'people':[2,3,4,5,6]} #类型#{field:array-like} b = pd.DataFrame.from_dict(a) #默认的是orient="columns" print(b.columns) b.to_csv('b.csv') i = pd.read_csv('b.csv',names=['money','people'],skiprows=[0],index_col=0) print(i.columns) Index(['money', 'people'], dtype='object') Index(['money', 'people'], dtype='object')

上面那个skiprows=[0]表示忽略第1行,names的意思就是重命名列表签的名字,如果文件中有缺失数据,可以在读取文件的时候使用index_col=0来表示,可能会出现里面有None和NA的可能,就可以使用NaN来填上,假设是money这列就使用{“money”:[None]},注意在python中None是一个对象,而Pandas中的NaN是缺失数据的标记

c = pd.read_csv('a.csv') print(c) d = pd.read_csv('a.csv',names=['money','people'],skiprows=[0],index_col=0) print(d) 0 100.0 2 0 1 109.2 3.0 1 2 198.0 NaN 2 3 158.0 5.0 3 4 NaN 6.0 money people 1 109.2 3.0 2 198.0 NaN 3 158.0 5.0 4 NaN 6.0

当然如果你不想读取文件所有数据的话,可以使用nrows=读入几行

HDF5文件

HDF5文件包含两种基本数据类型数据对象。

群组:类似文件夹,可以包含多个数据集或下级群组。 数据集:数据内容,可以是多维数组,也可以是更复杂的数据类型。

安装h5py

运行终端直接:pip install h5py

创建一个hdf5文件

a = h5py.File('hello.hdf5','w') print(a) <HDF5 file "hello.hdf5" (mode r+)>

里面具体有什么方法可以使用dir看一下对象的属性与方法,可以看到这种类型的文件中包含group和dataset两种基本数据类型,方法里面就是create_group和create_dataset。

b = a.create_dataset(name='/dataset',shape=(10,10))#在a文件里面创建一个dataset数据内容 c = a.create_group('group') #创建一个group文件 print(b.name) print(c.name) d = c.create_dataset(name='group1',shape=(20,20))#在group文件里面创建一个名为group1的数据内容 print(d.name) /dataset /group /group/group1

HDF5文件也是一个类字典对象,拥有类似字典的所有操作。

print(list(a.keys())) print(list(a.items())) print(list(a.values())) ['dataset', 'group'] [('dataset', <HDF5 dataset "dataset": shape (10, 10), type "<f4">), ('group', <HDF5 group "/group" (1 members)>)] [<HDF5 dataset "dataset": shape (10, 10), type "<f4">, <HDF5 group "/group" (1 members)>]
最新回复(0)