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)>]