前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Pandas 必备操作之 Index

Pandas 必备操作之 Index

作者头像
double
发布2019-05-13 15:47:04
2.2K0
发布2019-05-13 15:47:04
举报
文章被收录于专栏:算法channel算法channel

1 index

pandas 中的 index 是行索引或行标签。行标签可以说是 pandas 的灵魂一签,支撑了 pandas 很多强大的业务功能,比如多个数据框的 join, merge 操作,自动对齐等。

下面总结几个平时常用的关于 index 的操作

2 列转 index

有时,我们想把现有的数据框的某些列转化为 index,为之后的更多操作做准备。列转 index 实现方法如下:

代码语言:javascript
复制
In [1]: import pandas as pd
In [2]: df1 = pd.DataFrame({'a':[1,3,5],'b':[9,4,12]})                                                                                                                     
In [3]: df1Out[3]:    a   b0  1   91  3   42  5  12
In [4]: df1.set_index('a',drop=False)                                                                                                                                      Out[4]:    a   ba1  1   93  3   45  5  12
In [5]: df1.set_index('a',drop=True)                                                                                                                                       Out[5]:     ba1   93   45  12

3 index 转列

操作完成后,想再还原,即 index 转化为列,操作如下:

代码语言:javascript
复制
In [9]: df2.reset_index('a',drop=True)                                                                                                                                     Out[9]:     b0   91   42  12
In [10]: df2.reset_index('a',drop=False)                                                                                                                                   Out[10]:    a   b0  1   91  3   42  5  12

4 index, 随心所欲

如果想按照某种规则,重新排序行数据或列数据,靠一个函数就可以做到,它就是 reindex, 设置一个

代码语言:javascript
复制
In [3]: df1Out[3]:    a   b0  1   91  3   42  5  12
In [12]: df1.reindex([0,3,2,1])                                                                                                                                            Out[12]:      a     b0  1.0   9.03  NaN   NaN2  5.0  12.01  3.0   4.0

df1 原来有的行索引会重新按照最新的索引[0,3,2,1]重新对齐,原来没有的行索引 3,默认数据都填充为 NaN.

列数据的调整,也一样通过 reindex 实现,如下:

代码语言:javascript
复制
In [13]: df1.reindex(columns=['b','a','c'])                                                                                                                                Out[13]:     b  a   c0   9  1 NaN1   4  3 NaN2  12  5 NaN

以上是关于 index 调整的某些策略。

5 留一个问题

如何判断一个数据框中某行数据等于某个Series,比如:

代码语言:javascript
复制
In [19]: dfOut[19]:    a  b0  1  61  2  22  5  8s = pd.Series([5,8],index=['a','b'])  # df的 index=2 等于s, 所以为 Trues1 = pd.Series([89,8],index=['a','b'])  # False
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-04-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 程序员郭震zhenguo 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档