python速查表--導(dǎo)入數(shù)據(jù)

用python導(dǎo)入數(shù)據(jù)

大多數(shù)情況都是用Numpy和Pandas導(dǎo)入數(shù)據(jù)

import numpy as np
import pandas as pd

調(diào)用幫助

np.info(np.ndarray.dtype)
help(pd.read_csv)


1. 文本文件

1.1 純文本文件
 filename = 'test.txt'
 file = open( filename, mode='r')  # 以只讀方式讀取文件
 text =  file.read()             # 讀取文件內(nèi)容
 print( file.closed)             # 查看文件是否已經(jīng)關(guān)閉
 file.close()                    # 關(guān)閉文件
 print(text)

使用上下文管理器 with

with open('test.txt', 'r') as  file:
    print( file.readline())  # 讀取一行數(shù)據(jù)
    print( file.readline())
    print( file.readline())
1.2 表格數(shù)據(jù):文本文件
1.2.1 用Numpy導(dǎo)入文本文件
  • 單數(shù)據(jù)類型文件
filename = ‘test.txt’
data = np.loadtxt( filename,
                   delimiter=',', # 用于分割各列值的字符
                   skiprows=2,    # 跳過前兩行
                   usecols=[0,2], # 讀取并使用第1列和第3列
                   dtype=str)     # 使用的數(shù)據(jù)類型
  • 多數(shù)據(jù)類型文件
 filename = 'titanic.csv'
 data = np.genfromtxt( filename,
                       delimiter=',',
                       names=True,    # 導(dǎo)入是查找列名
                       dtype=None)
data_array = np.recfromcsv( filename) # np.recfromcsv()函數(shù)dtype默認值為None
1.2.2 用Pandas導(dǎo)入文本文件
 filename = 'test.csv'                        # csv文件路徑
 data = pd.read_csv( filename, 
                     nrows=5,               # 讀取的行數(shù)
                     header=None,           # 用哪一行做列名
                     sep='\t',              # 用于分割各列的字符
                     comment='#',           # 用于分割注釋的字符
                     na_values=[""])        # 讀取時,哪些值為NA/NaN


2. Excel表

file = 'test.xlsx'
data = pd.ExcelFile( file)
df_sheet2 = data.parse('1921-1949',
                       skiprows=[0],
                       names=['Country',
                       'AAM: War(20
df_sheet1 = data.parse(0,
                       parse_cols=[0],
                       skiprows=[0],
                       names=['Country'])

使用sheet_names屬性訪問表單名稱:

data.sheet_names


3. SAS文件

from sas7bdat import SAS7BDAT
with SAS7BDAT('test.sas7bdat') as  file:
    df_sas =  file.to_data_frame()


4. Stata文件

 data = pd.read_stata('test.dta')


5. 關(guān)系型數(shù)據(jù)庫文件

from sqlalchemy import create_engine
engine = create_engine('sqlite://Northwind.sqlite')
  • 使用 tables_names()方法獲取表名列表
table_names = engine.table_names()
5.1 查詢關(guān)系型數(shù)據(jù)庫
con = engine.connect()
rs = con.execute("SELECT * FROM Orders")
df = pd.DataFrame(rs.fetchall())
df.columns = rs.keys()
con.close()
  • 使用上下文管理器
with engine.connect() as con:
    rs = con.execute("SELECT OrderID FROM Orders")
    df = pd.DataFrame(rs.fetchmany(size=5))
    df.columns = rs.keys()
5.2 使用Pandas查詢關(guān)系型數(shù)據(jù)庫
df = pd.read_sql_query("SELECT * FROM Orders", engine)


6. 探索數(shù)據(jù)

6.1 Numpy 數(shù)組
data_array.dtype # 查看數(shù)組元素的數(shù)據(jù)類型
data_array.shape # 查看數(shù)組的維度
len(data_array)  # 查看數(shù)組的長度
6.2 Pandas 數(shù)組
df.head()  #  返回數(shù)據(jù)的前幾行(默認是前5行)
df.tail()  #  返回數(shù)據(jù)的后幾行(默認是后5行)
df.index   # 查看數(shù)據(jù)的索引
df.columns # 查看數(shù)據(jù)的列名
df.info()  # 查看數(shù)據(jù)的各列信息
data_array = data.values # 將數(shù)據(jù)轉(zhuǎn)換為Numpy數(shù)組


7. Pickled 文件

import pickle
with open('pickled_fruit.pkl', 'rb') as  le:
    pickled_data = pickle.load( le)


8. HDF5 文件

import h5py
filename = 'test.hdf5'
data = h5py.File( filename, 'r')


9. Matlab 文件

import scipy.io
filename = 'test.mat'
mat = scipy.io.loadmat( filename)


10. 探索字典

10.1 通過函數(shù)訪問數(shù)據(jù)元素
print(mat.keys())       # 輸出字典的鍵值列表
for key in data.keys(): # 輸出字典的鍵值
    print(key)
pickled_data.values()   # 返回字典的值
print(mat.items())      # 返回由元組構(gòu)成字典鍵值對列表
10.2 通過鍵訪問數(shù)據(jù)
for key in data ['meta'].keys() #   探索HDF5的結(jié)構(gòu)
    print(key)

print(data['meta']['Description'].value) # 提取某個鍵值對的值


11. 探尋文件系統(tǒng)

11.1 魔法命令
!ls    # 列出目錄里子目錄和文件
%cd .. # 返回上一級目錄
%pwd   # 返回當前目錄的路徑
11.2 os庫
import os
path = "/usr/tmp"
wd = os.getcwd()  # 將當前目錄存為字符串
os.listdir(wd)    # 將當前目錄下的文件輸出成列表
os.chdir(path)    # 改變當前的工作目錄
os.rename("test1.txt", "test2.txt") # 文件重命名
os.remove("test1.txt")  # 刪除該文件
os.mkdir("newdir") # 新建文件夾

原文作者:Learn R for Data Science Interactively

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市噪漾,隨后出現(xiàn)的幾起案子哼鬓,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,657評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡速和,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,889評論 3 394
  • 文/潘曉璐 我一進店門剥汤,熙熙樓的掌柜王于貴愁眉苦臉地迎上來颠放,“玉大人,你說我怎么就攤上這事吭敢∨鲂祝” “怎么了?”我有些...
    開封第一講書人閱讀 164,057評論 0 354
  • 文/不壞的土叔 我叫張陵鹿驼,是天一觀的道長痒留。 經(jīng)常有香客問我,道長蠢沿,這世上最難降的妖魔是什么伸头? 我笑而不...
    開封第一講書人閱讀 58,509評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮舷蟀,結(jié)果婚禮上恤磷,老公的妹妹穿的比我還像新娘。我一直安慰自己野宜,他們只是感情好扫步,可當我...
    茶點故事閱讀 67,562評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著匈子,像睡著了一般河胎。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上虎敦,一...
    開封第一講書人閱讀 51,443評論 1 302
  • 那天游岳,我揣著相機與錄音,去河邊找鬼其徙。 笑死胚迫,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的唾那。 我是一名探鬼主播访锻,決...
    沈念sama閱讀 40,251評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了期犬?” 一聲冷哼從身側(cè)響起河哑,我...
    開封第一講書人閱讀 39,129評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎龟虎,沒想到半個月后灾馒,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,561評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡遣总,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,779評論 3 335
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了轨功。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片旭斥。...
    茶點故事閱讀 39,902評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖古涧,靈堂內(nèi)的尸體忽然破棺而出垂券,到底是詐尸還是另有隱情,我是刑警寧澤羡滑,帶...
    沈念sama閱讀 35,621評論 5 345
  • 正文 年R本政府宣布菇爪,位于F島的核電站,受9級特大地震影響柒昏,放射性物質(zhì)發(fā)生泄漏凳宙。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,220評論 3 328
  • 文/蒙蒙 一职祷、第九天 我趴在偏房一處隱蔽的房頂上張望氏涩。 院中可真熱鬧,春花似錦有梆、人聲如沸是尖。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,838評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽饺汹。三九已至,卻和暖如春痰催,著一層夾襖步出監(jiān)牢的瞬間兜辞,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,971評論 1 269
  • 我被黑心中介騙來泰國打工夸溶, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留弦疮,地道東北人。 一個月前我還...
    沈念sama閱讀 48,025評論 2 370
  • 正文 我出身青樓蜘醋,卻偏偏與公主長得像胁塞,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,843評論 2 354

推薦閱讀更多精彩內(nèi)容