I set up a simple DataFrame in pandas:
a = pandas.DataFrame([[1,2,3], [4,5,6], [7,8,9]], columns=[\'a\',\'b\',\'c\'])
>>> print a
a b c
0 1 2
For pandas 0.22,
a.at[a.index[-1], 'a'] = 77
this is just one of the ways.
Alright I've found a way to solve this problem without chaining, and without worrying about multiple indices.
a.iloc[-1, a.columns.get_loc('a')] = 77
>>> a
a b c
0 1 2 3
1 4 5 6
2 77 8 9
I wasn't able to use iloc
before because I couldn't supply the column index as an int, but get_loc
solves that problem. Thanks for the helpful comments everyone!
Taking elements from the solutions of @PallavBakshi and @Mike, the following works in Pandas >= 0.19
Just using iloc[-1, 'a] won't work as -1 is not in the index.
a.loc[a.index[-1], 'a']= 4.0