大多數情況下,會使用NumPy或Pandas來導入數據,因此在開始之前,先執行:
import numpy as np import pandas as pd
很多時候對一些函數方法不是很了解,此時Python提供了一些幫助訊息,以快速使用Python物件。
np.info(np.ndarray.dtype)
help(pd.read_csv)
filename = 'demo.txt' file = open(filename, mode='r') # 打开文件进行读取 text = file.read() # 读取文件的内容 print(file.closed) # 检查文件是否关闭 file.close() # 关闭文件 print(text)
使用上下文管理器 -- with
with open('demo.txt', 'r') as file: print(file.readline()) # 一行一行读取 print(file.readline()) print(file.readline())
Numpy 內建函數處理資料的速度是 C 語言層級的。
Flat 檔案是一種包含沒有相對關係結構的記錄的檔案。 (支援Excel、CSV和Tab分割符檔案 )
具有一種資料類型的檔案
用於分隔值的字串跳過前兩行。在第一列和第三列讀取結果陣列的類型。
filename = 'mnist.txt' data = np.loadtxt(filename, delimiter=',', skiprows=2, usecols=[0,2], dtype=str)
#兩個硬的要求:
filename = 'titanic.csv' data = np.genfromtxt(filename, delimiter=',', names=True, dtype=None)#使用Pandas 讀取Flat檔案
##
filename = 'demo.csv' data = pd.read_csv(filename, nrows=5,# 要读取的文件的行数 header=None,# 作为列名的行号 sep='t', # 分隔符使用 comment='#',# 分隔注释的字符 na_values=[""]) # 可以识别为NA/NaN的字符串
二、Excel 電子表格
file = 'demo.xlsx' data = pd.ExcelFile(file) df_sheet2 = data.parse(sheet_name='1960-1966', skiprows=[0], names=['Country', 'AAM: War(2002)']) df_sheet1 = pd.read_excel(data, sheet_name=0, parse_cols=[0], skiprows=[0], names=['Country'])
使用sheet_names屬性取得要讀取工作表的名稱。
data.sheet_names
三、SAS 檔案
from sas7bdat import SAS7BDAT with SAS7BDAT('demo.sas7bdat') as file: df_sas = file.to_data_frame()
四、Stata 檔案
data = pd.read_stata('demo.dta')
五、Pickled 檔案
import pickle with open('pickled_demo.pkl', 'rb') as file: pickled_data = pickle.load(file) # 下载被打开被读取到的数据
與其對應的操作是寫入方法pickle.dump() 。
六、HDF5 文件
HDF5 檔案一般以 .h5 或 .hdf5 作為後綴名,需要專門的軟體才能開啟預覽檔案的內容。
import h5py filename = 'H-H1_LOSC_4_v1-815411200-4096.hdf5' data = h5py.File(filename, 'r')
七、Matlab 檔案
import scipy.io filename = 'workspace.mat' mat = scipy.io.loadmat(filename)
八、關係型資料庫
from sqlalchemy import create_engine engine = create_engine('sqlite://Northwind.sqlite')
使用table_names()方法取得一個表名清單
table_names = engine.table_names()
1、直接查詢關係型資料庫
con = engine.connect() rs = con.execute("SELECT * FROM Orders") df = pd.DataFrame(rs.fetchall()) df.columns = rs.keys() con.close()
使用情境管理器 -- with
with engine.connect() as con: rs = con.execute("SELECT OrderID FROM Orders") df = pd.DataFrame(rs.fetchmany(size=5)) df.columns = rs.keys()
2、使用Pandas查詢關係型資料庫
df = pd.read_sql_query("SELECT * FROM Orders", engine)
資料探索
1、NumPy Arrays
data_array.dtype# 数组元素的数据类型 data_array.shape# 阵列尺寸 len(data_array) # 数组的长度
2、Pandas DataFrames
df.head()# 返回DataFrames前几行(默认5行) df.tail()# 返回DataFrames最后几行(默认5行) df.index # 返回DataFrames索引 df.columns # 返回DataFrames列名 df.info()# 返回DataFrames基本信息 data_array = data.values # 将DataFrames转换为NumPy数组
以上是Python八種資料導入方法,你掌握了嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!