首頁 > 後端開發 > Python教學 > Python八種資料導入方法,你掌握了嗎?

Python八種資料導入方法,你掌握了嗎?

WBOY
發布: 2023-04-19 12:52:03
轉載
1717 人瀏覽過

大多數情況下,會使用NumPy或Pandas來導入數據,因此在開始之前,先執行:

import numpy as np
import pandas as pd
登入後複製

兩種取得help的方法

很多時候對一些函數方法不是很了解,此時Python提供了一些幫助訊息,以快速使用Python物件。

使用Numpy中的info方法。

np.info(np.ndarray.dtype)
登入後複製

Python八種資料導入方法,你掌握了嗎?

Python內建函數

help(pd.read_csv)
登入後複製

Python八種資料導入方法,你掌握了嗎?

一、文本文件

1、純文字檔

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())
登入後複製

2、表格資料: Flat檔案

使用Numpy 讀取Flat 檔案

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)
登入後複製

Python八種資料導入方法,你掌握了嗎?

#使用Pandas 讀取Flat檔案

##

filename = 'demo.csv' 
data = pd.read_csv(filename, 
 nrows=5,# 要读取的文件的行数
 header=None,# 作为列名的行号
 sep='t', # 分隔符使用
 comment='#',# 分隔注释的字符
 na_values=[""]) # 可以识别为NA/NaN的字符串
登入後複製

二、Excel 電子表格

Pandas中的ExcelFile()是pandas中對excel表格檔案進行讀取相關操作非常方便快速的類,尤其是在對含有多個sheet的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 檔案

SAS (Statistical Analysis System)是一個模組化、整合化的大型應用軟體系統。其保存的文件即sas是統計分析文件。

from sas7bdat import SAS7BDAT
with SAS7BDAT('demo.sas7bdat') as file:
df_sas = file.to_data_frame()
登入後複製

四、Stata 檔案

Stata 是一套提供其使用者資料分析、資料管理以及繪製專業圖表的完整及整合性統計軟體。其保存的檔案後綴名為.dta的Stata檔案。

data = pd.read_stata('demo.dta')
登入後複製

五、Pickled 檔案

python中幾乎所有的資料類型(列表,字典,集合,類別等)都可以用pickle來序列化。 python的pickle模組實現了基本的資料序列和反序列化。透過pickle模組的序列化操作我們能夠將程式中運行的物件資訊保存到檔案中去,永久儲存;透過pickle模組的反序列化操作,我們能夠從檔案中建立上一次程式保存的物件。

import pickle
with open('pickled_demo.pkl', 'rb') as file:
 pickled_data = pickle.load(file) # 下载被打开被读取到的数据
登入後複製

與其對應的操作是寫入方法pickle.dump() 。

六、HDF5 文件

HDF5文件是一種常見的跨平台數據儲存文件,可以儲存不同類型的圖像和數位數據,並且可以在不同類型的機器上傳輸,同時還有統一處理這種文件格式的函數庫。

HDF5 檔案一般以 .h5 或 .hdf5 作為後綴名,需要專門的軟體才能開啟預覽檔案的內容。

import h5py
filename = 'H-H1_LOSC_4_v1-815411200-4096.hdf5'
data = h5py.File(filename, 'r')
登入後複製

七、Matlab 檔案

其由matlab將其工作區間裡的資料儲存的後綴為.mat的檔案。

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中文網其他相關文章!

相關標籤:
來源:51cto.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板