关于 pd.Series 排序后用索引和行号取值要注意的问题

本文通过实例分析了在pd.Series排序后,使用索引和行号取值的区别。当Series索引为数字时,ser[n]按索引取值,而ser.iloc[n]按行号取值,且ser[-1]可能报错。当索引非数字时,ser[n]按行号取值,ser[-1]可行。建议使用ser.iloc[n]确保按行号取值。
摘要由CSDN通过智能技术生成

1. 先看一个典型的例子:

alist = [ 3,5,8,0,-9,np.nan,18]
sers = pd.Series(alist) # 测试一
print(sers)
sers.sort_values(axis=0, ascending=False, inplace=True) # 降序
sers.dropna(inplace=True)
print("排序后:")
print(sers)
print(type(sers))
print(f" index[0]:{sers.index[0]}")
print(f"  [0]:{sers[0]} iloc[0]:{sers.iloc[0]}")
print(f" index[-1]:{sers.index[-1]}")
print(f"  iloc[-1]:{sers.iloc[-1]}")

运行结果是:

0     3.0
1     5.0
2     8.0
3     0.0
4    -9.0
5     NaN
6    18.0
dtype: float64
排序后:
6    18.0
2     8.0
1     5.0
0     3.0
3     0.0
4    -9.0
dtype: float64
<class 'pandas.core.series.Series'>
 index[0]:6
  [0]:3.0 iloc[0]:18.0
 index[-1]:4
  iloc[-1]:-9.0

 可以看到,sers[0]和sers.iloc[0]是不一样的,前

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值