I'm wondering why the former way of assignment (A) failed.
Can anyone explain this?
- (A): .ix and then sliced
- (B): .ix with sliced indexer
pandas version : 0.18.0
a = pd.DataFrame({"A":[10,11,12]})
indexer = [0,1,2]
# orginal DataFrame
print(a)
# A
# 0 10
# 1 11
# 2 12
# (A) assignment failed
a.ix[indexer,"A"][0] = 999
print(a)
# A
# 0 10
# 1 11
# 2 12
# (B) assignment succeeded
a.ix[indexer[0],"A"] = 999
print(a)
# A
# 0 999
# 1 11
# 2 12
Thank you in advance.
Note: As of Pandas v0.20, .ix indexer is deprecated in favour of .iloc / .loc.