Измените элемент в последней строке DataFramePython

Программы на Python
Anonymous
 Измените элемент в последней строке DataFrame

Сообщение Anonymous »

Я настроил простой DataFrame в 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  3
1  4  5  6
2  7  8  9
Мне хотелось бы иметь возможность изменить один элемент в последней строке. В pandas==0.13.1 я мог бы использовать следующее:

Код: Выделить всё

a.iloc[-1]['a'] = 77
>>> print a
a  b  c
0   1  2  3
1   4  5  6
2  77  8  9
но после обновления до pandas==0.14.1 при этом я получаю следующее предупреждение:

Код: Выделить всё

SettingWithCopyWarning: A value is trying to be set on a copy of a slice from a DataFrame.
Try using .loc[row_index,col_indexer] = value instead
Проблема, конечно, в том, что -1 не является индексом , поэтому я не могу использовать loc. Как указано в предупреждении, я не изменил столбец «a» последней строки, я изменил только удаленную локальную копию.

Как мне это сделать в новой версии pandas? Я понимаю, что мог бы использовать индекс последней строки, например:

Код: Выделить всё

a.loc[2,'a'] = 77
Но я буду работать с таблицами, в которых несколько строк имеют один и тот же индекс, и я не хочу каждый раз переиндексировать свою таблицу. Есть ли способ сделать это, не зная заранее индекс последней строки?

Подробнее здесь: https://stackoverflow.com/questions/251 ... -dataframe

Вернуться в «Python»