Pandas翻译0311

语义上DF像一个包含一个(类索引的series对象),getting,setting,and deleteting 操作和字典一毛一样

```

```

Columns的删除和pop也是和字典一毛一样的

```

```

如果你查插入的series的index和df的index不一致,那么将会以df的index为准。

```

```

你也可以插入原生的ndarrays,但是他们的程度必须和DF的索引的长度相同。

默认情况下,columns的插入位置一般都在最后,insert方法可以设置中特定位置插入columns


### 声明新的列???(in method chains)

受dplyr的mtate动词启发,df有一个assign方式,可以让你轻松根据已有列创建一个衍生出来的新列

```

```

上面的例子演示的是插入一个预先计算好的值,我们也可以传一个可以被df执行的function作为参数。

```

```

assign返回一个原来数据的拷贝,与原来的数据是相互独立不影响的。

传入一个可被调用的方法,而不是真是的数据,在你暂时没有df的reference 的时候特别有用。尤其是在操作链中使用assign很常见。例如:我们可以只选SptaplLengh大于5的值计算利率和分布图。

```

```

传入的方法是在df被定义的时候才计算的。更重要的是,df是筛选后的df,先筛再计算的。这是一个我们没有df的reference的例子。

assign方法出入的参数是**kwargs.key是columns的名字,values是一个值/包含一个参数的function。返回的是一个df的copy。

warning:

因为assign的参数是**kwargs,是一个字典,所有结果中的new columns的顺序是无法保证的,默认按照key的字母顺序排列。

所有的表达式都是先计算再命名的。所以你不能在一个assign方法中使用另一个也是被命名的columns。比如:

```

```

indexing/ 选择

基本的indexing方法如下


行选择,例如。返回的是一个index是df的columns的Series对方。

```

```

关于indexing和切片的详情见section on indexing.关于原理层面的东西见section of reindexing .

### 

不同的df对象会根据columns和index自动匹配。结果生成的对象是二者的并集。

```

```

当df和series对象操作的时候,会自动匹配series的index到df的columns。然后再把这个动作扩展到其他行。

```

```

当数据中含有time格式的serise,并且df的index包含时间,将会按照列扩展。

warning:

df - df['A']

目前不赞成这样,以后的版本会挪去。推荐的方式如下:

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

更多关于匹配和扩展的操作见flexible binary operations

```

```

当然也可以实现布尔操作

```

```

### 转置

使用T属性就可以了。和ndarray的T属性相同。

### 使用numpy的一些方法

numpy的一些元素智能的方法用在df身上完全没有问题,假设包含的数据是数值性的。

```

```

dot方法实现矩阵乘法

```

```

类似的,sries的dot方法完成的是dot结果

```

```

df设计的初衷并不是去取代ndarray的。这是因为df的索引语义会根据在矩阵中位置的不同有很大的区别。

### 控制台信息的输出

数据量很大的df对象会在展示的时候自动删减掉一部分再展示。info方法可以看df的概览情况。

使用to_string方法将会返回一个表格形式的字符串。虽然显示上面长度没有匹配到console

```

```

比较宽的df展示的时候将会折行。

设置display.width来空置每行展示多少。

设置display.max_colwidth来控制每列的显示长度。

通过expand_frame_repr选项来禁止上面的设置生效。显示出来的将会是一个块信息。

### df列属性的获取 和 ipython的自动补全。

如果df的列标签是一个有效的python变量名。可以通过获取属性的那种样式去获取数据

```

```

这些列也可以通过ipython中的自动补全。

### panel

警告:在0.20.0版本中,panel不赞成使用而且后期将会被取消。详见Deprecated Panel

panel某些程度上甚少用到,但仍是很重要的3维数据的容器。penel data是从计量经济学衍生出来的,也是跟pandas的名字相关的:pan(el)-da(ta)-s.3个轴的名字也是为了对包括panel数据的操作上面提供一些语义上的说明。然而,为了切片df对象,axis的名字有些被df独用了。

items: XXX

major_axis:XXX

minor_axis:XXX

Panel的构建方式正如你所期望的那样:

### from 3D ndarray 

```

```

### from dict of DF objects

注意,字典中的values必须能转化为DF,因此,他们可以是上面任意一种有效的输入来生成DF

一个有用的工厂方法是 Panel.from_dict。参数为一个DF的字典。剩下的参数如下:

例如,与上面的构造方式来相比:

```

```

orient对与多类型的DF对象来说很有用,如果你传入的是一个包含多类型columns的df的字典,所有的数据都会当作dypte=object。除非你传入了参数 orient='minor'

注意:Panle使用频率不如series和df,在功能使用上常常被忽视,df中的很多方法还不能在Panel中使用。

### from df 使用to_panel方法

to_panel 把一个df对象转换成一个两级index的Panel对象。

```

```

# 元素的 选择/增加/删除

df的操作把他当作是一个包含series的字典。类似的。Panel就是一个包含df的字典。

the 增加和删除的API 和df一样。正如df一样,如果里面的元素是一个有效的python变量名,你可以通过像属性一样去获取它并且在ipython中完成自动补全。

### 转置

通过他的transpose方法可以重排列一个Panel对象

### 索引/选择

例如,使用前面的例子当中的数据,我们可以:

```

```

### 挤压

修改一个object的维度的另一个方式就是squeeze一个长度为1的对象。像wp['item']

```

```

### 转换成df

Panel也可以以2d的形式展现,即一个包含多层的index的df,点击这里。如果想要把一个Panel变成一个df,使用to_frame 方法:

```

```

### 一些反对的声音

过去几年pandas的在工具覆盖范围和使用深度方面都取得了很大的发展:引入了很多的特性,同时也支持更多的数据类型;也支持更多的方法使用。但是这些为了这些高效的索引和方法的运行使用而做的努力,也使得pandas的代码库渐渐开始变得分散化,同时也慢慢变得不易于理解。

Panle的3维数据结构与1维的series和2维的df有很大的不同。



相于其他类型的数据分析语言,Panel的三维结构比1-D的series或2-D的DataFrame代码量上要小得多。面向未来,pandas专注于这些数据分析领域是非常非常有意义的。

通常,您可以简单地使用多索引DataFrame来轻松处理更高维度的数据。

另外,xarray包也是一点一点构建起来的。特别是为了支持多维的数据分析,这也是panel一个常见用例。xarray和panel的相互转化详情见这里。

```

```

或者你也可以转成xarray 类型的DataArray

```

```

完整文档见这里。

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

### 警告:

在0.19.0 Panel4D和ND是不建议使用,并且在以后的版本中会被移除。推荐用xrray包来表示多维的数据。pandas提供了一个to_xarray方法来自动完成转换。

更之前的版本文档见这里。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,802评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,109评论 2 379
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,683评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,458评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,452评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,505评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,901评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,550评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,763评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,556评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,629评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,330评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,898评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,897评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,140评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,807评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,339评论 2 342

推荐阅读更多精彩内容