Pandas翻譯0311

語義上DF像一個包含一個(類索引的series對象)峦失,getting兑燥,setting上煤,and deleteting 操作和字典一毛一樣

```

```

Columns的刪除和pop也是和字典一毛一樣的

```

```

如果你查插入的series的index和df的index不一致峭火,那么將會以df的index為準。

```

```

你也可以插入原生的ndarrays,但是他們的程度必須和DF的索引的長度相同摊欠。

默認情況下捌显,columns的插入位置一般都在最后,insert方法可以設(shè)置中特定位置插入columns


### 聲明新的列陡厘?抽米??(in method chains)

受dplyr的mtate動詞啟發(fā)糙置,df有一個assign方式云茸,可以讓你輕松根據(jù)已有列創(chuàng)建一個衍生出來的新列

```

```

上面的例子演示的是插入一個預(yù)先計算好的值,我們也可以傳一個可以被df執(zhí)行的function作為參數(shù)谤饭。

```

```

assign返回一個原來數(shù)據(jù)的拷貝标捺,與原來的數(shù)據(jù)是相互獨立不影響的。

傳入一個可被調(diào)用的方法揉抵,而不是真是的數(shù)據(jù)亡容,在你暫時沒有df的reference 的時候特別有用。尤其是在操作鏈中使用assign很常見功舀。例如:我們可以只選SptaplLengh大于5的值計算利率和分布圖萍倡。

```

```

傳入的方法是在df被定義的時候才計算的。更重要的是辟汰,df是篩選后的df列敲,先篩再計算的阱佛。這是一個我們沒有df的reference的例子。

assign方法出入的參數(shù)是**kwargs.key是columns的名字戴而,values是一個值/包含一個參數(shù)的function凑术。返回的是一個df的copy。

warning:

因為assign的參數(shù)是**kwargs,是一個字典所意,所有結(jié)果中的new columns的順序是無法保證的淮逊,默認按照key的字母順序排列。

所有的表達式都是先計算再命名的扶踊。所以你不能在一個assign方法中使用另一個也是被命名的columns泄鹏。比如:

```

```

indexing/ 選擇

基本的indexing方法如下


行選擇,例如秧耗。返回的是一個index是df的columns的Series對方备籽。

```

```

關(guān)于indexing和切片的詳情見section on indexing.關(guān)于原理層面的東西見section of reindexing .

###?

不同的df對象會根據(jù)columns和index自動匹配。結(jié)果生成的對象是二者的并集分井。

```

```

當df和series對象操作的時候车猬,會自動匹配series的index到df的columns。然后再把這個動作擴展到其他行尺锚。

```

```

當數(shù)據(jù)中含有time格式的serise珠闰,并且df的index包含時間,將會按照列擴展瘫辩。

warning:

df - df['A']

目前不贊成這樣伏嗜,以后的版本會挪去。推薦的方式如下:

df.sub(df('A'),axis=0)

更多關(guān)于匹配和擴展的操作見flexible binary operations

```

```

當然也可以實現(xiàn)布爾操作

```

```

### 轉(zhuǎn)置

使用T屬性就可以了杭朱。和ndarray的T屬性相同阅仔。

### 使用numpy的一些方法

numpy的一些元素智能的方法用在df身上完全沒有問題,假設(shè)包含的數(shù)據(jù)是數(shù)值性的弧械。

```

```

dot方法實現(xiàn)矩陣乘法

```

```

類似的八酒,sries的dot方法完成的是dot結(jié)果

```

```

df設(shè)計的初衷并不是去取代ndarray的。這是因為df的索引語義會根據(jù)在矩陣中位置的不同有很大的區(qū)別刃唐。

### 控制臺信息的輸出

數(shù)據(jù)量很大的df對象會在展示的時候自動刪減掉一部分再展示羞迷。info方法可以看df的概覽情況。

使用to_string方法將會返回一個表格形式的字符串画饥。雖然顯示上面長度沒有匹配到console

```

```

比較寬的df展示的時候?qū)坌小?/p>

設(shè)置display.width來空置每行展示多少衔瓮。

設(shè)置display.max_colwidth來控制每列的顯示長度。

通過expand_frame_repr選項來禁止上面的設(shè)置生效抖甘。顯示出來的將會是一個塊信息热鞍。

### df列屬性的獲取 和 ipython的自動補全。

如果df的列標簽是一個有效的python變量名∞背瑁可以通過獲取屬性的那種樣式去獲取數(shù)據(jù)

```

```

這些列也可以通過ipython中的自動補全偷办。

### panel

警告:在0.20.0版本中,panel不贊成使用而且后期將會被取消澄港。詳見Deprecated Panel

panel某些程度上甚少用到椒涯,但仍是很重要的3維數(shù)據(jù)的容器。penel data是從計量經(jīng)濟學衍生出來的回梧,也是跟pandas的名字相關(guān)的:pan(el)-da(ta)-s.3個軸的名字也是為了對包括panel數(shù)據(jù)的操作上面提供一些語義上的說明废岂。然而,為了切片df對象狱意,axis的名字有些被df獨用了湖苞。

items: XXX

major_axis:XXX

minor_axis:XXX

Panel的構(gòu)建方式正如你所期望的那樣:

### from 3D ndarray?

```

```

### from dict of DF objects

注意,字典中的values必須能轉(zhuǎn)化為DF,因此详囤,他們可以是上面任意一種有效的輸入來生成DF

一個有用的工廠方法是 Panel.from_dict袒啼。參數(shù)為一個DF的字典。剩下的參數(shù)如下:

例如纬纪,與上面的構(gòu)造方式來相比:

```

```

orient對與多類型的DF對象來說很有用,如果你傳入的是一個包含多類型columns的df的字典滑肉,所有的數(shù)據(jù)都會當作dypte=object包各。除非你傳入了參數(shù) orient='minor'

注意:Panle使用頻率不如series和df,在功能使用上常常被忽視,df中的很多方法還不能在Panel中使用靶庙。

### from df 使用to_panel方法

to_panel 把一個df對象轉(zhuǎn)換成一個兩級index的Panel對象问畅。

```

```

# 元素的 選擇/增加/刪除

df的操作把他當作是一個包含series的字典。類似的六荒。Panel就是一個包含df的字典护姆。

the 增加和刪除的API 和df一樣。正如df一樣掏击,如果里面的元素是一個有效的python變量名卵皂,你可以通過像屬性一樣去獲取它并且在ipython中完成自動補全。

### 轉(zhuǎn)置

通過他的transpose方法可以重排列一個Panel對象

### 索引/選擇

例如砚亭,使用前面的例子當中的數(shù)據(jù)灯变,我們可以:

```

```

### 擠壓

修改一個object的維度的另一個方式就是squeeze一個長度為1的對象。像wp['item']

```

```

### 轉(zhuǎn)換成df

Panel也可以以2d的形式展現(xiàn)捅膘,即一個包含多層的index的df添祸,點擊這里。如果想要把一個Panel變成一個df,使用to_frame 方法:

```

```

### 一些反對的聲音

過去幾年pandas的在工具覆蓋范圍和使用深度方面都取得了很大的發(fā)展:引入了很多的特性寻仗,同時也支持更多的數(shù)據(jù)類型刃泌;也支持更多的方法使用。但是這些為了這些高效的索引和方法的運行使用而做的努力,也使得pandas的代碼庫漸漸開始變得分散化耙替,同時也慢慢變得不易于理解亚侠。

Panle的3維數(shù)據(jù)結(jié)構(gòu)與1維的series和2維的df有很大的不同。



相于其他類型的數(shù)據(jù)分析語言林艘,Panel的三維結(jié)構(gòu)比1-D的series或2-D的DataFrame代碼量上要小得多盖奈。面向未來,pandas專注于這些數(shù)據(jù)分析領(lǐng)域是非常非常有意義的狐援。

通常钢坦,您可以簡單地使用多索引DataFrame來輕松處理更高維度的數(shù)據(jù)。

另外啥酱,xarray包也是一點一點構(gòu)建起來的爹凹。特別是為了支持多維的數(shù)據(jù)分析,這也是panel一個常見用例镶殷。xarray和panel的相互轉(zhuǎn)化詳情見這里禾酱。

```

```

或者你也可以轉(zhuǎn)成xarray 類型的DataArray

```

```

完整文檔見這里。

### Panel 4D 和 ND (不建議)

### 警告:

在0.19.0 Panel4D和ND是不建議使用绘趋,并且在以后的版本中會被移除颤陶。推薦用xrray包來表示多維的數(shù)據(jù)。pandas提供了一個to_xarray方法來自動完成轉(zhuǎn)換陷遮。

更之前的版本文檔見這里滓走。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市帽馋,隨后出現(xiàn)的幾起案子搅方,更是在濱河造成了極大的恐慌,老刑警劉巖绽族,帶你破解...
    沈念sama閱讀 212,294評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件姨涡,死亡現(xiàn)場離奇詭異,居然都是意外死亡吧慢,警方通過查閱死者的電腦和手機涛漂,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,493評論 3 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來娄蔼,“玉大人怖喻,你說我怎么就攤上這事∷晁撸” “怎么了锚沸?”我有些...
    開封第一講書人閱讀 157,790評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長涕癣。 經(jīng)常有香客問我哗蜈,道長前标,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,595評論 1 284
  • 正文 為了忘掉前任距潘,我火速辦了婚禮炼列,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘音比。我一直安慰自己俭尖,他們只是感情好,可當我...
    茶點故事閱讀 65,718評論 6 386
  • 文/花漫 我一把揭開白布洞翩。 她就那樣靜靜地躺著稽犁,像睡著了一般。 火紅的嫁衣襯著肌膚如雪骚亿。 梳的紋絲不亂的頭發(fā)上已亥,一...
    開封第一講書人閱讀 49,906評論 1 290
  • 那天,我揣著相機與錄音来屠,去河邊找鬼虑椎。 笑死,一個胖子當著我的面吹牛俱笛,可吹牛的內(nèi)容都是我干的捆姜。 我是一名探鬼主播,決...
    沈念sama閱讀 39,053評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼迎膜,長吁一口氣:“原來是場噩夢啊……” “哼娇未!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起星虹,我...
    開封第一講書人閱讀 37,797評論 0 268
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎镊讼,沒想到半個月后宽涌,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,250評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡蝶棋,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,570評論 2 327
  • 正文 我和宋清朗相戀三年卸亮,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片玩裙。...
    茶點故事閱讀 38,711評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡兼贸,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出吃溅,到底是詐尸還是另有隱情溶诞,我是刑警寧澤,帶...
    沈念sama閱讀 34,388評論 4 332
  • 正文 年R本政府宣布决侈,位于F島的核電站螺垢,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜枉圃,卻給世界環(huán)境...
    茶點故事閱讀 40,018評論 3 316
  • 文/蒙蒙 一功茴、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧孽亲,春花似錦坎穿、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,796評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至旭等,卻和暖如春酌呆,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背搔耕。 一陣腳步聲響...
    開封第一講書人閱讀 32,023評論 1 266
  • 我被黑心中介騙來泰國打工隙袁, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人弃榨。 一個月前我還...
    沈念sama閱讀 46,461評論 2 360
  • 正文 我出身青樓菩收,卻偏偏與公主長得像,于是被迫代替她去往敵國和親鲸睛。 傳聞我的和親對象是個殘疾皇子娜饵,可洞房花燭夜當晚...
    茶點故事閱讀 43,595評論 2 350

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