After finished the sql query of "python or sql" question.
step1.try to use pyodbc to query the sql server.
https://mkleehammer.github.io/pyodbc/
always remember to "import pyodbc"
連接數(shù)據(jù)庫時(shí),記得要給用戶訪問數(shù)據(jù)庫的權(quán)限哦~(Admin登陸數(shù)據(jù)庫的情況下陌凳,點(diǎn)擊數(shù)據(jù)庫-屬性-文件-所有者晃琳,給予用戶權(quán)限)
Connect to A Database
Pass an ODBC connection string to the connect function which will return a Connection. Once you have a connection you can ask it for a Cursor.
Select Some Data
All SQL statements are executed using Cursor.execute. If the statement returns rows, such as a select statement, you can retreive them using the Cursor fetch functions (fetchone,fetchall, fetchmany).
這里要注意具篇,fetchone,fetchall,fetchmany切換時(shí)腊凶,需要重新執(zhí)行execute語句榄檬,否則fetch的對象不對哦(因?yàn)檫@里其實(shí)是指針督函,每次操作都會(huì)移動(dòng)的)帆调。另外,fetchall比較占內(nèi)存迁匠,是將所有查詢結(jié)果保存在連接里面剩瓶,所以盡量每次用fetchone提取自己需要的對象〕巧ィ——比如延曙,用while 1這個(gè)循環(huán)來遍歷。
另外亡哄,經(jīng)驗(yàn)證搂鲫,只要連接不中斷,都是實(shí)時(shí)查詢磺平,也就是說,如果對數(shù)據(jù)庫中數(shù)據(jù)進(jìn)行了修改拐辽,重新查詢的值也會(huì)修改拣挪。
Parameters
ODBC supports query parameters using a question mark as a place holder in the SQL. You provide the values for the question marks by passing them after the SQL
置后傳參,即運(yùn)算符后面放‘俱诸?’菠劝,參數(shù)放在最后統(tǒng)一傳(其實(shí)也可以直接傳參,即直接在運(yùn)算符后面?zhèn)鳎?/p>
Insert, Delete, Update
commit
always remember to commit the transaction.
關(guān)于Pandas 和 numpy
- Pandas中的數(shù)據(jù)結(jié)構(gòu)
Series:一維數(shù)組睁搭,與Numpy中的一維array類似赶诊。二者與Python基本的數(shù)據(jù)結(jié)構(gòu)List也很相近,其區(qū)別是:List中的元素可以是不同的數(shù)據(jù)類型园骆,而Array和Series中則只允許存儲(chǔ)相同的數(shù)據(jù)類型舔痪,這樣可以更有效的使用內(nèi)存,提高運(yùn)算效率锌唾。
Time- Series:以時(shí)間為索引的Series锄码。
DataFrame:二維的表格型數(shù)據(jù)結(jié)構(gòu)夺英。很多功能與R中的data.frame類似∽檀罚可以將DataFrame理解為Series的容器痛悯。以下的內(nèi)容主要以DataFrame為主。
Panel :三維的數(shù)組重窟,可以理解為DataFrame的容器载萌。
- 安裝Pandas
通過Anaconda安裝
http://pandas.pydata.org/pandas-docs/stable/install.html#installing-pandas-with-anaconda
不用這個(gè)工具安裝的方法之一見
http://data-sci.info/2015/10/18/windows-%E5%AE%89%E8%A3%9Dpython-pandas%E5%A5%97%E4%BB%B6/
安裝完成之后直接用IPython編輯,語法同python巡扇,網(wǎng)上有說IPython相較于Python自帶編輯器的優(yōu)點(diǎn)扭仁。
關(guān)于IPython常用命令參見
http://www.360doc.com/content/15/0313/11/175261_454772338.shtml
使用Anaconda Prompt進(jìn)行查看和安裝包操作
輸入 conda list 來看一下所有安裝時(shí)自帶的Python擴(kuò)展;輸入pip install xx來安裝包
- 使用Pandas導(dǎo)入文本數(shù)據(jù)(txt,csv等)
import Pandas as pd
然后使用解析函數(shù)霎迫,有一堆參數(shù)可選斋枢,重點(diǎn)記住path(路徑),names(自定義列名)知给,index_col(索引列)瓤帚,header(行號(hào),默認(rèn)為0涩赢,若無header行應(yīng)設(shè)置為None)戈次。。筒扒。
- 逐塊讀取文本文件
很大文件時(shí)逐塊讀取參見(有效率對比及適用條件說明)
http://www.thebigdata.cn/JieJueFangAn/13962.html
這里有個(gè)奇怪的現(xiàn)象怯邪,如果禁用行列標(biāo)簽則正常,如果不禁用則導(dǎo)出文件的第一個(gè)數(shù)據(jù)單元格有問題花墩。
- 關(guān)于兩個(gè)獨(dú)立文件如何合并參見
http://zhidao.baidu.com/link?url=UQoesURrEsUM4NvE5ZacHe3H3aIffo6G9Bh2CxvaVMziijv50mw85py6bAuIfoyfxJCrsFM2esdPotfYJQrIYIpj03VdidF1TBPhH-rWIWO
注意悬秉,如果想要合并后按照列對齊的話,reader1的columns和reader2的要一致冰蘑,這里涉及到表的連接和泌。
關(guān)于python如何切換目錄
import os
獲取當(dāng)前工作目錄
os.getcwd()
更改當(dāng)前工作目錄
os.chdir('d:\')關(guān)于python idle清屏
import os
os.system('cls')
十分鐘搞定pandas
參見,常見用法基本都有
http://www.cnblogs.com/chaosimple/p/4153083.html
用ipython畫圖的話祠肥,記得用plt.show()進(jìn)行圖片顯示~