1 index
pandas 中的 index 是行索引或行标签。行标签可以说是 pandas 的灵魂一签,支撑了 pandas 很多强大的业务功能,比如多个数据框的 join, merge 操作,自动对齐等。
下面总结几个平时常用的关于 index 的操作
2 列转 index
有时,我们想把现有的数据框的某些列转化为 index,为之后的更多操作做准备。列转 index 实现方法如下:
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 转化为列,操作如下:
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, 设置一个
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 实现,如下:
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,比如:
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
本文分享自 程序员郭震zhenguo 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!