「目录」
6.1 => Pandas的数据结构
6.2 => Pandas的基本功能
--------> reindex重新索引
6.3 => 数学和统计方法

reindex重新索引
有时当你创建Series后,可能想改变索引的顺序。你可以使用pandas的方法reindex,reindex可以创建一个新的对象,并根据新的索引重新排序:
In [2]: obj = pd.Series([1, 2, 3, 4], index = ['d', 'b', 'a', 'c'])
In [3]: obj
Out[3]:
d 1
b 2
a 3
c 4
dtype: int64
In [4]: obj2 = obj.reindex(['a', 'b', 'c', 'd', 'e'])
In [5]: obj2
Out[5]:
a 3.0
b 2.0
c 4.0
d 1.0
e NaN
dtype: float64复制
如果某个索引的值不存在,就引入缺失值。
如果要做插值处理,使用method选项的ffill可以前向值填充,比如
In [6]: obj3 = pd.Series(['Chinese', 'American', 'Japanese'], index = range(0,6,2))
In [7]: obj3
Out[7]:
0 Chinese
2 American
4 Japanese
dtype: object
In [8]: obj3.reindex(range(6), method='ffill')
Out[8]:
0 Chinese
1 Chinese
2 American
3 American
4 Japanese
5 Japanese
dtype: object复制
❝Tip:ffill(forward fill)是前向填充,对应的还有bfill(backward fill)为后向填充。
❞
传入limit参数则可以控制前向或后向填充时的最大填充量:
In [2]: obj4 = pd.Series(['Chinese', 'American', 'Japanese'], index = range(0,9,3))
In [3]: obj4
Out[3]:
0 Chinese
3 American
6 Japanese
dtype: object复制
比如这里选择limit=1:
In [4]: obj4.reindex(range(9), method='ffill', limit=1)
Out[4]:
0 Chinese
1 Chinese
2 NaN
3 American
4 American
5 NaN
6 Japanese
7 Japanese
8 NaN
dtype: object复制
对于DataFrame,reindex可以修改它的行索引(index)和列索引(column)。
In [9]: frame = pd.DataFrame(np.arange(9).reshape((3,3)), index = ['a', 'c', 'd'], columns = ['Ohio', 'Texas', 'California'])
In [10]: frame
Out[10]:
Ohio Texas California
a 0 1 2
c 3 4 5
d 6 7 8复制

若我们传入一个序列,会重新索引行:
In [11]: frame2 = frame.reindex(['a', 'b', 'c', 'd'])
In [12]: frame2
Out[12]:
Ohio Texas California
a 0.0 1.0 2.0
b NaN NaN NaN
c 3.0 4.0 5.0复制

列索引可以用columns关键字重新索引:
In [5]: states = ['Texas', 'Utah', 'California']
In [6]: frame.reindex(columns = states)
Out[6]:
Texas Utah California
a 1 NaN 2
c 4 NaN 5
d 7 NaN 8复制

下面的表格汇总了reindex函数的参数
「中文版」

「英文版」

往期回顾



Stay hungry, stay foolish
快来,点在看啦

文章转载自Yuan的学习笔记,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
相关阅读
[MYSQL] 服务器出现大量的TIME_WAIT, 每天凌晨就清零了
大大刺猬
179次阅读
2025-04-01 16:20:44
官宣,Milvus SDK v2发布!原生异步接口、支持MCP、性能提升
ZILLIZ
117次阅读
2025-04-02 09:34:13
[MYSQL] query_id和STATEMENT_ID在不同OS上的关系
大大刺猬
88次阅读
2025-03-26 19:08:13
WingPro for Mac 强大的Python开发工具 v10.0.9注册激活版
一梦江湖远
47次阅读
2025-03-29 10:33:27
python操作MySQL数据库
怀念和想念
44次阅读
2025-03-30 23:22:07
AI与我共创WEB界面
布衣
40次阅读
2025-04-14 22:13:51
使用python将excel数据导入数据库
wzf0072
34次阅读
2025-03-28 17:35:31
Python使用MySQL数据库(新)
怀念和想念
34次阅读
2025-03-26 09:11:04
python排序sort()和sorted()区别
wzf0072
32次阅读
2025-04-09 19:57:46
「PG解密」为什么 Python 开发人员只使用 Postgres
瀚高PG实验室
25次阅读
2025-03-27 09:58:25