像Excel一樣使用Python(一)


一、基本介紹

在進行數(shù)據(jù)處理時奸攻,如果數(shù)據(jù)簡單蒜危,數(shù)量不多,excel是大家的首選睹耐。但是當數(shù)據(jù)眾多辐赞,類型復雜,需要靈活地顯示切片硝训、進行索引响委、以及排序時,python會更加方便捎迫。借助python中的numpy和pandas庫晃酒,它能快速完成各種任務,包括數(shù)據(jù)的創(chuàng)建窄绒、檢查贝次、清洗、預處理彰导、提取蛔翅、篩選敲茄、匯總、統(tǒng)計等山析。接下來幾篇文章堰燎,將以excel為參照,介紹python中數(shù)據(jù)的處理笋轨。

提到pandas秆剪,那就不得不提兩類重要的數(shù)據(jù)結構,Series和DataFrame爵政,這兩類數(shù)據(jù)結構都是建立在numpy的數(shù)組array基礎上仅讽。與array相比,Series是一個一維的數(shù)據(jù)集钾挟,但是每個數(shù)據(jù)元素都帶有一個索引洁灵,有點類似于字典。而DataFrame在數(shù)組的基礎上掺出,增加了行索引和列索引徽千,類似于Series的字典,或者說是一個列表集汤锨。

所以在數(shù)據(jù)處理前双抽,要安裝好numpy , pandas。接下來就看看如何完成一套完整的數(shù)據(jù)操作泥畅。

二荠诬、像Excel一樣使用Python

1.導入數(shù)據(jù)表

創(chuàng)建數(shù)據(jù)表的方法分兩種,分別是從外部導入數(shù)據(jù)位仁,以及直接寫入數(shù)據(jù)柑贞。


導入數(shù)據(jù)

在python中,也可外部導入xlsx格式文件聂抢,使用read_excel()函數(shù):

import pandas as pd

from pandas import DataFrame,Series

data=DataFrame(pd.read_excel('c:/python27/test.xlsx'))

print data

輸出:

Gene Size Function

0 arx1 411 NaN

1 arx2 550 monooxygenase

2 arx3 405 aminotransferase

……

即:調(diào)用pandas中read_excel屬性钧嘶,來讀取文件test.xlsx,并轉換成DataFrame格式琳疏,賦給變量data有决。在每一行后,自動分了一個索引值空盼。除了excel书幕,還支持以下格式文件的導入和寫入:

2.寫入數(shù)據(jù)表

Python寫入的方法有很多,但還是不如excel方便揽趾。常用的例如使用相等長度的字典或numpy數(shù)組來創(chuàng)建:

data1 = DataFrame(

{'Gene':['arx1','arx2','arx3'],

'Size':[411,550,405],

'Func':[np.NaN,'monooxygenase','aminotransferase ']})

print data1

輸出

Func Gene Size

0 NaN arx1 411

1 monooxyg arx2 550

2 amino arx3 405

分配一個行索引后台汇,自動排序并輸出。

3.查看數(shù)據(jù)表信息

在python中,可以使用info()函數(shù)查看整個數(shù)據(jù)的詳細信息苟呐。

print data.info()

輸出

RangeIndex: 7 entries, 0 to 6

Data columns (total 3 columns):

Gene 7 non-null object

Size 7 non-null int64

Function 5 non-null object

dtypes: int64(1), object(2)

memory usage: 240.0+ bytes

None

此外痒芝,還可以通過shape, column, index, values, dtypes等函數(shù)來查看數(shù)據(jù)維度、行列組成牵素、所有的值严衬、 數(shù)據(jù)類型:

print data1.shape

print data1.index

print data1.columns

print data1.dtypes

輸出

(3, 3)

RangeIndex(start=0, stop=3, step=1)

Index([u'Func', u'Gene', u'Size'], dtype='object')

Func object

Gene object

Size int64

dtype: object

4.替換空值

在excel中可以按“F5”,在“定位條件”中選擇“空值”笆呆,選中后请琳,輸入替換信息,再按“Ctrl+Enter”即可完成替換腰奋。


替換空值

在python中单起,使用函數(shù) isnull 和 notnull 來檢測數(shù)據(jù)丟失, 包含空值返回True,不包含則返回False劣坊。

pd.isnull(data1)

pd.notnull(data1)

也可以使用函數(shù)的實例方法,以及加入?yún)?shù)屈留,對某一列進行檢查:

print data1['Func'].isnull()

輸出

Func Gene Size

0 True False False

1 False False False

2 False False False

再使用fillna對空值進行填充:

data.fillna(value=0)

#用0來填充空值

data['Size'].fillna(data1['Size'].mean())

#用data1中Size列的平均值來填充空值

data['Func']=data['Func'].map(str.strip)

#清理Func列中存在的空格

5.替換其他值

Excel中可以按“Ctrl+F”局冰,可調(diào)出替換對話框,替換相應數(shù)據(jù)灌危。


查找替換

Python中康二,使用replace函數(shù)替換:

data['Func'].replace('monooxygenase', 'oxidase')

將Func列中的'monooxygenase'替換成'oxidase'。

6.查看唯一值

Excel中勇蝙,通過“數(shù)據(jù)-篩選-高級”可以選擇性地看某一列的唯一值沫勿。


查看唯一值

Python中,使用unique函數(shù)查看:

print data['Func'].unique()

輸出

[nan u'monooxygenase' u'aminotransferase' u'methyltransferase']

7.大小寫轉換

Excel中味混,通過UPPER产雹、LOWER、PROPER等函數(shù)來變成大寫翁锡、小寫蔓挖、首字母大寫。


大小寫函數(shù)

Python中也有同名函數(shù):

data1['Gene'].str.lower()

8.刪除重復值

Excel中可以通過“數(shù)據(jù)-刪除重復項”來去除重復值馆衔。


數(shù)據(jù)-刪除重復值

Python中瘟判,可以通過drop_duplicates函數(shù)刪除重復值:

print data['Func'].drop_duplicates()

輸出

0 NaN

1 monooxygenase

2 aminotransferase

3 methyltransferase

Name: Func, dtype: object

還可以設置“ keep=’last’ ”參數(shù),后出現(xiàn)的被保留角溃,先出現(xiàn)的被刪除:

print data['Func'].drop_duplicates(keep='last')

輸出

2 aminotransferase

3 methyltransferase

6 monooxygenase

8 NaN

Name: Func, dtype: object

內(nèi)容參考:

Python For Data Analysis

藍鯨網(wǎng)站分析博客拷获,作者藍鯨(王彥平)

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市减细,隨后出現(xiàn)的幾起案子匆瓜,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,126評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件陕壹,死亡現(xiàn)場離奇詭異质欲,居然都是意外死亡,警方通過查閱死者的電腦和手機糠馆,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,254評論 2 382
  • 文/潘曉璐 我一進店門嘶伟,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人又碌,你說我怎么就攤上這事九昧。” “怎么了毕匀?”我有些...
    開封第一講書人閱讀 152,445評論 0 341
  • 文/不壞的土叔 我叫張陵铸鹰,是天一觀的道長。 經(jīng)常有香客問我皂岔,道長蹋笼,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,185評論 1 278
  • 正文 為了忘掉前任躁垛,我火速辦了婚禮剖毯,結果婚禮上,老公的妹妹穿的比我還像新娘教馆。我一直安慰自己逊谋,他們只是感情好,可當我...
    茶點故事閱讀 64,178評論 5 371
  • 文/花漫 我一把揭開白布土铺。 她就那樣靜靜地躺著胶滋,像睡著了一般。 火紅的嫁衣襯著肌膚如雪悲敷。 梳的紋絲不亂的頭發(fā)上究恤,一...
    開封第一講書人閱讀 48,970評論 1 284
  • 那天,我揣著相機與錄音镀迂,去河邊找鬼丁溅。 笑死,一個胖子當著我的面吹牛探遵,可吹牛的內(nèi)容都是我干的窟赏。 我是一名探鬼主播,決...
    沈念sama閱讀 38,276評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼箱季,長吁一口氣:“原來是場噩夢啊……” “哼涯穷!你這毒婦竟也來了?” 一聲冷哼從身側響起藏雏,我...
    開封第一講書人閱讀 36,927評論 0 259
  • 序言:老撾萬榮一對情侶失蹤拷况,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體赚瘦,經(jīng)...
    沈念sama閱讀 43,400評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡粟誓,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,883評論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了起意。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片鹰服。...
    茶點故事閱讀 37,997評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖揽咕,靈堂內(nèi)的尸體忽然破棺而出悲酷,到底是詐尸還是另有隱情,我是刑警寧澤亲善,帶...
    沈念sama閱讀 33,646評論 4 322
  • 正文 年R本政府宣布设易,位于F島的核電站,受9級特大地震影響蛹头,放射性物質(zhì)發(fā)生泄漏顿肺。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,213評論 3 307
  • 文/蒙蒙 一渣蜗、第九天 我趴在偏房一處隱蔽的房頂上張望挟冠。 院中可真熱鬧,春花似錦袍睡、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,204評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至嫌吠,卻和暖如春止潘,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背辫诅。 一陣腳步聲響...
    開封第一講書人閱讀 31,423評論 1 260
  • 我被黑心中介騙來泰國打工凭戴, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人炕矮。 一個月前我還...
    沈念sama閱讀 45,423評論 2 352
  • 正文 我出身青樓么夫,卻偏偏與公主長得像,于是被迫代替她去往敵國和親肤视。 傳聞我的和親對象是個殘疾皇子档痪,可洞房花燭夜當晚...
    茶點故事閱讀 42,722評論 2 345

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