Python 資料匯入與準備

2021-08-01 15:03:06 字數 3763 閱讀 9642

資料匯入與準備是進行資料探勘等機器學習的第一要素。從各種不同的格式檔案中匯入資料是一件比較麻煩的事。因為檔案格式多種多樣,那麼使用匯入的方法也是有所不同。我總結了目前最常用的檔案格式匯入資料的一些方法,給大家參考一下。

# 從csv檔案匯入資料

'''步驟:

1. 開啟檔案

2.讀取檔案頭

3.讀取剩餘行

4當發生錯誤時丟擲異常

'''import csv

import sys

filename = 'ex5.csv'

data =

try:

with open(filename) as f:

reader = csv.reader(f)

header = reader.next()

data = [row for row in reader]

except csv.error as e:

print "error reading csv file at line %s : %s" % (reader.line_num, e)

sys.exit(-1)

if header:

print header

print "**********"

for datarow in data:

print datarow

# 從excel檔案中匯入資料

'''步驟:

1. 開啟檔案的工作簿。

2. 根據名稱找到工作表。根據行數(nrows)和列數(ncols)讀取單元格的內容。

3. 列印出資料集合。

'''import xlrd

file = 'output.xls'

wb = xlrd.open_workbook(file)

ws = wb.sheet_by_name("sheet1")

dataset =

for r in xrange(ws.nrows):

col =

for c in range(ws.ncols):

# 美化列印

from pprint import pprint

pprint(dataset)

# 從定寬資料檔案匯入資料

'''步驟:

1.指定要讀取的資料檔案。

2.定義資料讀取的方式。

3.逐行讀取檔案並根據格式把每一行解析成單獨的資料字段。

4.按單獨資料字段的形式列印每一行。

'''import struct

datafile = 'fix-width.data'

# 掩碼定義為5s10s5s,表示為9個字元的字串,跟乙個10個字元的字串,再跟乙個5個字元的字串(包括空格)。

mask = '5s10s5s'

results =

with open(datafile, 'r') as f:

for line in f:

# 用格式解析的unpack_from方法。

fields = struct.struct(mask).unpack_from(line)

from pprint import pprint

pprint(results)

# 從製表符分隔的檔案中讀取資料

'''製表符分隔的檔案大部分是可以用csv檔案匯入的方法,除了一些不正常的檔案。這時就需要在切分前對特殊行的資料進行單獨清理。

'''from pandas import dataframe

lines =

datafile = 'data_dirty.tab'

with open(datafile, "r") as f:

for line in f:

line = line.strip().split("\t")

results = dataframe(lines[1:], columns=[lines[0]])

print results

# 從json資料來源匯入資料

'''步驟:

1.指定url讀取json格式資料

2.使用requests模組訪問指定的url,並獲取內容

3.讀取內容並將轉化為json格式的物件

4.迭代訪問json物件,讀取每乙個**庫的url值

'''import requests

url = ''

r = requests.get(url)

json_obj = r.json()

repos = set()

for entry in json_obj:

print entry

try:

repos.add(entry['repository']['url'])

except keyerror as e:

print "no key %s skipping..." % (e)

from pprint import pprint

pprint(repos)

# 從html中匯入資料

from lxml.html import parse

from urllib2 import urlopen

parsed = parse(urlopen(""))

# 找到文件中的**,並將其匯入。

doc = parsed.getroot()

table = doc.findall(".//table")

# 然後選擇乙個**做測試。

put = table[1]

# 對於乙個**來說,有乙個標題和資料。在html中th單元格就表示標題行,td則表示資料行。

def _unpack(row, kind="td"):

elts = row.findall(".//%s" % kind)

return [val.text_content() for val in elts]

# 同時,在匯入資料**時,應該考慮到文字型別。我們使用pandas中的textparser類自動型別轉換。

from pandas.io.parsers import textparser

def parse_options_data(table):

rows = table.findall(".//tr")

header = _unpack(rows[0], kind="th")

data = [_unpack(r) for r in rows[1:]]

return textparser(data, names=header).get_chunk()

# 最後對這個**呼叫該解析函式

put_data = parse_options_data(put)

print put_data[:10]

# 同時,我們也可以獲取文件的全部url

# 鏈結的標籤是a。

links = doc.findall(".//a")

# print links[15:20]

# 得到乙個鏈結的url和文字內容分別使用,get()和text_content()方法

urls = [lnk.get("href") for lnk in links]

text = [lnk.text_content() for lnk in links]

from pprint import pprint

pprint(urls[:10])

print 「**********==」

pprint(text[:10])

資料匯入 python

匯入csv資料 import pandas as pd data pd.read csv 檔案儲存的位置 data.describe 資料的統計 data.sort values by 列名 資料按某列排序匯入excel資料 excel是一種 檔案,在python資料分析中,同樣可以使用pandas...

python準備 python環境準備

環境準備 可以使用linux作業系統或者mac系統,windows上也可以使用.ide editor python版本選擇 推薦使用3.4.x以上的版本,雖然很多模組在python2版本上比較穩定,相對支援的庫也比較多,但是python3是趨勢.安裝pyenv來管理python環境 pyenv的安裝...

python 資料如何匯入

python如何將csv,xls,sql,html,txt檔案中的資料匯入到python中。在使用的python之前先導入pandas這個模組。1 匯入csv格式的資料 使用pandas 中的read csv 要匯入資料的位置 2 匯入xls格式的資料 使用pandas中的read excel 要匯...