第九篇,數據分析之pandas的文件讀寫操作

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)>]
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章