Замена Pandas DataFrame не работает с inplace = True - PullRequest
0 голосов
/ 05 декабря 2018

В моем столбце фрейма данных у меня есть номера версий, такие как 6.3.5, 1.8, 5.10.0, сохраненные как объекты и, следовательно, вероятно, как строки.Я хочу удалить точки ни с чем, поэтому я получаю 635, 18, 5100. Моя идея кода была такой:

for row in dataset.ver:
    row.replace(".","",inplace=True)

Дело в том, что это работает, если я не установил на место значение True, но мы хотимперезаписать и сохранить.

Ответы [ 2 ]

0 голосов
/ 05 декабря 2018

Сандер ван ден Оорд в комментариях совершенно правильно указать:

dataset['ver'].replace("[.]","", inplace=True, regex=True)

Это способ, которым мы выполняем операции над столбцом в Pandas, потому что в общем случае Pandas пытается оптимизировать с помощью forпетли.Разработчики Pandas считают цикл наиболее подходящим шаблоном для строковых операций в Python (см. здесь .)

0 голосов
/ 05 декабря 2018

Вы перебираете элементы внутри DataFrame, и в этом случае я предполагаю, что это тип str (или приводится к str, когда вы replace).str.replace не имеет аргумента для inplace=....

Вы должны сделать это вместо этого:

dataset['ver'] = dataset['ver'].str.replace('.', '')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...