ix弃用如何替代?教你如何用loc或iloc实现DataFrame的位置、标签混合索引

ix函数被弃用,但是有时候需要用到位置、标签同时索引的情况,很多这种情况是为了避免链式索引的,例如:
我想修改一个df的倒数第一行的第’id’列的值。
此时,倒数第一行,可以用iloc[-1,:]轻松取出来,但是在不用链式索引的情况下,如何取第’id’列呢?

>>>df1 = pd.DataFrame({'id': [3, 4, 1, 1],
                    'name': ['wang', 'hao', 'tian', 'shuai'],
                    'class': [5, 5, 8, 8],
                    'score': [59, 75, 85, 98]},
                   index=[0, 1, 2, 3])
>>>print(df1)
Out[30]: 
   id   name  class  score
0   3   wang      5     59
1   4    hao      5     75
2   1   tian      8     85
3   1  shuai      8     98

# 方法1
>>>df1.iloc[-1, df1.columns.get_loc('name')] = 'zhang'
>>>df1
Out[31]: 
   id   name  class  score
0   3   wang      5     59
1   4    hao      5     75
2   1   tian      8     85
3   1  zhang      8     98

# 方法2
>>>df1.loc[df1.index[-1], 'name'] = 'bai'
>>>df1
Out[35]: 
   id  name  class  score
0   3  wang      5     59
1   4   hao      5     75
2   1  tian      8     85
3   1   bai      8     98

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值