|
原創(chuàng) 不靠譜的貓 2018-09-13 16:20:00 Python可以使用各種各樣的文件作為數(shù)據(jù)源:
Flat files平面文件--txt,csv - 很簡單,可以使用numpy或pandas導入。 numpy.recfromcsv - 加載存儲在逗號分隔文件中的ASCII數(shù)據(jù)。返回的數(shù)組是一個記錄數(shù)組(如果usemask = False)或masked記錄數(shù)組(如果usemask = True)。Python示例代碼: data = np.recfromcsv(file) numpy.loadtxt - 此函數(shù)旨在成為簡單格式化文件的快速閱讀器。該genfromtxt函數(shù)提供了更復雜的處理,例如,缺失值的行。 data = np.loadtxt('file.csv', delimiter=',', skiprows=1, usecols=[0,2])numpy.genfromtxt - 從文本文件加載數(shù)據(jù),并按指定處理缺失值。是更復雜的函數(shù),有很多參數(shù)來控制你的導入。 data = np.genfromtxt('titanic.csv', delimiter=',', names=True, dtype=None)使用pandas更容易 - 一行,你準備好DataFrame中的文件。還支持可選地將文件迭代或分解為塊。 data = pd.read_csv(file, nrows=5, header=None, sep=' ', comment='#', na_values='Nothing') Pickle它用于序列化和反序列化Python對象結(jié)構(gòu)??梢詫ython中的任何對象進行pickle,以便將其保存在磁盤上。pickle的作用是在將對象寫入文件之前先將其“序列化”。Pickling是一種將python對象(list,dict等)轉(zhuǎn)換為字符流的方法。這個想法是這個字符流包含在另一個python腳本中重建對象所需的所有信息。下面的代碼將打印一個在某處創(chuàng)建并存儲在文件中的字典 - 非???,不是嗎? import pickle Excel與pandas.read_excel將Excel表讀入panda DataFrame中,并進行了大量的自定義導入數(shù)據(jù),這個函數(shù)的文檔很清楚,你可以用Excel文件做任何你想做的事情。 df = pd.read_excel('file.xlsx', sheet_name='sheet1')SAS和StataSAS代表統(tǒng)計分析軟件。SAS數(shù)據(jù)集包含組織為觀察(行)和變量(列)表的數(shù)據(jù)值。要打開此類文件并從中導入數(shù)據(jù),請看下面的Python代碼示例: from sas7bdat import SAS7BDAT Stata是一款強大的統(tǒng)計軟件,可以讓用戶分析、管理和生成數(shù)據(jù)的圖形化可視化。它主要被經(jīng)濟學、生物醫(yī)學和政治學領(lǐng)域的研究人員用于研究數(shù)據(jù)模式。存儲在.dta文件中的數(shù)據(jù),導入它的最好方法是pandas.read_stata df = pd.read_stata('file.dta')HDF5分層數(shù)據(jù)格式(HDF)是一組文件格式(HDF4, HDF5),用于存儲和組織大量數(shù)據(jù)。HDF5是一個獨特的技術(shù)套件,可以管理非常大和復雜的數(shù)據(jù)集合。HDF5簡化了文件結(jié)構(gòu),只包含兩種主要類型的對象:
這就產(chǎn)生了一種真正的層次化、文件系統(tǒng)式的數(shù)據(jù)格式。實際上,HDF5文件中的資源甚至可以使用類似/ path / to / resource訪問HDF5文件中的資源。元數(shù)據(jù)以用戶定義的、附加到Groups和Datasets的命名屬性的形式存儲。然后,可以使用數(shù)據(jù)集、組和屬性構(gòu)建表示圖像和表的更復雜的存儲api。 要導入HDF5文件,我們需要h5py庫。下面的Python代碼示例使我更輕松,完全可以理解。 import h5py MATLAB很多人使用MATLAB并將數(shù)據(jù)存儲在.mat文件中。那些文件是什么?這些文件包含在MATLAB工作空間中分配給它們的變量和對象列表。將它作為字典導入Python并不奇怪,其中鍵是MATLAB變量和值 - 分配給這些變量的對象。要編寫和讀取MATLAB文件,請使用scipy.io包。 import scipy.io 關(guān)系數(shù)據(jù)庫使用驅(qū)動程序連接到數(shù)據(jù)庫,我們可以直接從那里獲取數(shù)據(jù)。通常它意味著:創(chuàng)建連接,連接,運行查詢,獲取數(shù)據(jù),關(guān)閉連接。它可以一步一步地完成,但在pandas 中只需要sqlalchemy包創(chuàng)建的連接。下面是連接到sqlite數(shù)據(jù)庫引擎并從中獲取數(shù)據(jù)的示例: from sqlalchemy import create_engine 來自Web的數(shù)據(jù)首先,如果我們有一個文件的URL,我們可以使用標準的pandas.read_csv / pandas.read_excel函數(shù)在參數(shù)“file =”中指定它 df = pd.read_csv('https://www./data.csv', sep=';')除此之外,要從Web獲取數(shù)據(jù),我們需要使用HTTP協(xié)議,特別是GET方法。并且requests 包做了這個令人難以置信的工作。要從requests.get收到的響應中訪問文本,我們只需要使用方法.text。 import requests r.text將為我們提供一個包含所有html標簽的網(wǎng)頁 - 不是很有用,不是嗎?我們有一個BeautifulSoup包,可以解析HTML并提取我們需要的信息,在本例中是所有超鏈接(繼續(xù)前面的例子): from bs4 import BeautifulSoup API在計算機編程中,應用程序編程接口(API)是一組子例程定義,通信協(xié)議和用于構(gòu)建軟件的工具。一般而言,它是一組明確定義的各種組件之間的通信方法。有許多不同的API,首先必須做的是檢查文檔,但事實是幾乎所有API都以JSON格式返回數(shù)據(jù)。requests 包將再次幫助我們。(我們必須發(fā)送HTTP GET請求以從API獲取數(shù)據(jù))。 import requests 我們可以看到,數(shù)據(jù)無處不在,我們必須知道獲取它的所有方法 |
|
|