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