Pandas Index 转换&排序&联表&选取

本文介绍了使用Python的Pandas库进行数据处理时,如何对DataFrame的索引进行多种操作,包括转换类型、获取列表、生成Series、排序、连接、交并补集运算等,并通过实例展示了每种操作的具体用法。

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

import pandas as pd
df = pd.DataFrame({"学号": [1001,1002,1003,1004,1005],
                   "name": ["A","B","C","D","E"],
                 "生日": ["1990/01/02","1992/02/05","1990/05/06","1991/05/30","1992/05/03"],
                  "性别": ["boy","girl","girl","boy","girl"],
                   "数学": [56,67,47,87,47]
                  }).set_index("生日")
df
Out[1]:
  name 学号 性别 数学
生日        
1990/01/02 A 1001 boy 56
1992/02/05 B 1002 girl 67
1990/05/06 C 1003 girl 47
1991/05/30 D 1004 boy 87
1992/05/03 E 1005 girl 47
In [ ]:
df.index.astype()
In [3]:
df.index.tolist()
Out[3]:
['1990/01/02', '1992/02/05', '1990/05/06', '1991/05/30', '1992/05/03']
In [4]:
df.index.to_series()
Out[4]:
生日
1990/01/02    1990/01/02
1992/02/05    1992/02/05
1990/05/06    1990/05/06
1991/05/30    1991/05/30
1992/05/03    1992/05/03
Name: 生日, dtype: object
In [5]:
df.index.argsort() #不懂
Out[5]:
array([0, 2, 3, 1, 4], dtype=int64)
In [6]:
df.index.sort_values()
Out[6]:
Index(['1990/01/02', '1990/05/06', '1991/05/30', '1992/02/05', '1992/05/03'], dtype='object', name='生日')
In [ ]:
df.index.shift() #不懂
In [8]:
df.index.append(df.index)
Out[8]:
Index(['1990/01/02', '1992/02/05', '1990/05/06', '1991/05/30', '1992/05/03',
       '1990/01/02', '1992/02/05', '1990/05/06', '1991/05/30', '1992/05/03'],
      dtype='object', name='生日')
In [9]:
df.index.join(df.index)
Out[9]:
Index(['1990/01/02', '1992/02/05', '1990/05/06', '1991/05/30', '1992/05/03'], dtype='object', name='生日')
In [10]:
df.index.intersection(df.index.delete(1))
Out[10]:
Index(['1990/01/02', '1990/05/06', '1991/05/30', '1992/05/03'], dtype='object', name='生日')
In [11]:
df.index.union(df.index.delete(1))
Out[11]:
Index(['1990/01/02', '1990/05/06', '1991/05/30', '1992/02/05', '1992/05/03'], dtype='object', name='生日')
In [12]:
df.index.difference(df.index.delete(1))
Out[12]:
Index(['1992/02/05'], dtype='object', name='生日')
In [13]:
df.index.symmetric_difference(df.index.delete(1))
Out[13]:
Index(['1992/02/05'], dtype='object', name='生日')
In [14]:
df.index.get_indexer(df.index.delete(1))
Out[14]:
array([0, 2, 3, 4], dtype=int64)
In [15]:
df.index.get_indexer_non_unique(df.index.delete(1))
Out[15]:
(Int64Index([0, 2, 3, 4], dtype='int64'), array([], dtype=int64))
In [16]:
df.index.get_level_values(0)
Out[16]:
Index(['1990/01/02', '1992/02/05', '1990/05/06', '1991/05/30', '1992/05/03'], dtype='object', name='生日')
In [ ]:
df.index.get_loc(1)
In [18]:
df.index.isin(['1990/01/02', '1992/02/05', '1990/05/06', '1991/05/30'])
Out[18]:
array([ True,  True,  True,  True, False], dtype=bool)
In [19]:
df.index.slice_indexer()
Out[19]:
slice(0, 5, None)
In [20]:
df.index.slice_locs()
Out[20]:
(0, 5)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值