添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《 阿里云开发者社区用户服务协议 》和 《 阿里云开发者社区知识产权保护指引 》。如果您发现本社区中有涉嫌抄袭的内容,填写 侵权投诉表单 进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

索引是pandas两个重要数据结构Series和DataFrame的重要组成部分,默认的索引是以0开始序列,也可以自定义数据。

因为有索引的存在,Series和DataFrame在进行数据操作的时候,会自动进行数据对齐。

我们来看一个例子:

import pandas as pd
s1 = pd.Series([1, 2, 3, 4], index=['a', 'b', 'c', 'd'])
s2 = pd.Series([1, 2, 3, 4], index=['e', 'b', 'c', 'd'])
s3 = s1 + s2
# a    NaN
# b    4.0
# c    6.0
# d    8.0
# e    NaN
# dtype: float64

从上面可知,s1和s2具有不同的索引, s1 + s2 并不是Series中的数据按序相加,而是自动按照索引进行对齐,有时候我们可以利用这个特性进行数据处理,有时候需要注意这种特性会产生和预期不同的结果。

如果我们需要对s1和s2按序相加要怎么办? 这个时候需要对索引进行重置成默认序列索引,在进行相加。

s1.reset_index(drop=True) + s2.reset_index(drop=True)
# 0    2
# 1    4
# 2    6
# 3    8
# dtype: int64

上面可知,通过 reset_index 将索引重置到0到3, 相加就是按序相加。

reset_index默认会将索引作为新的一列增加到数据中, 如果你不需要索引可以指定 drop=True

s1.reset_index()
#     index    0
# 0    a    1
# 1    b    2
# 2    c    3
# 3    d    4

希望对你有帮助。