Pandas 必备操作之 Index

本文介绍了Pandas中Index的重要性和常见操作,包括行标签的使用、列转换为Index、Index转列、灵活的reindex函数用于行和列的重新排列,以及一个挑战问题:如何判断数据框中某行是否等于特定Series。通过这些内容,帮助读者掌握Pandas对数据的高效处理技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1 index 

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

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

2 列转 index 

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


 
  1. In [1]: import pandas as pd


  2. In [2]: df1 = pd.DataFrame({'a':[1,3,5],'b':[9,4,12]})


  3. In [3]: df1

  4. Out[3]:

  5. a b

  6. 0 1 9

  7. 1 3 4

  8. 2 5 12


  9. In [4]: df1.set_index('a',drop=False)

  10. Out[4]:

  11. a b

  12. a

  13. 1 1 9

  14. 3 3 4

  15. 5 5 12


  16. In [5]: df1.set_index('a',drop=True)

  17. Out[5]:

  18. b

  19. a

  20. 1 9

  21. 3 4

  22. 5 12

3 index 转列 

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


 
  1. In [9]: df2.reset_index('a',drop=True)

  2. Out[9]:

  3. b

  4. 0 9

  5. 1 4

  6. 2 12


  7. In [10]: df2.reset_index('a',drop=False)

  8. Out[10]:

  9. a b

  10. 0 1 9

  11. 1 3 4

  12. 2 5 12

4 index, 随心所欲 

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


 
  1. In [3]: df1

  2. Out[3]:

  3. a b

  4. 0 1 9

  5. 1 3 4

  6. 2 5 12


  7. In [12]: df1.reindex([0,3,2,1])

  8. Out[12]:

  9. a b

  10. 0 1.0 9.0

  11. 3 NaN NaN

  12. 2 5.0 12.0

  13. 1 3.0 4.0

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

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


 
  1. In [13]: df1.reindex(columns=['b','a','c'])

  2. Out[13]:

  3. b a c

  4. 0 9 1 NaN

  5. 1 4 3 NaN

  6. 2 12 5 NaN

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

5 留一个问题

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


 
  1. In [19]: df

  2. Out[19]:

  3. a b

  4. 0 1 6

  5. 1 2 2

  6. 2 5 8

  7. s = pd.Series([5,8],index=['a','b']) # df的 index=2 等于s, 所以为 True

  8. s1 = pd.Series([89,8],index=['a','b']) # False


欢迎留言,期待你的想法



Python 数据分析必备学习路线:期待你的参与

Python异常:unhashable type 是怎么回事?


640?wx_fmt=jpeg

Python与机器学习算法频道

长按订阅,干货满满

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值