.replace () в DataFrame не заменяет - PullRequest
0 голосов
/ 28 мая 2018

Я пытаюсь удалить ; из столбца в DataFrame, но когда я использую метод .replace(';', ' '), он не заменяет точку с запятой, вот как я это делаю:

for i in excel_file['dateTime']:
    i.replace(';', ' ')

Вот так выглядит моя 'dateTime' колонка:

11-06-18;
18-06-18;
18-09-18;
14-06-18;
20-06-18;
13-06-18;
21-06-18;
19-06-18;
19-06-18;
20-06-18;
11-06-18;
22-06-18;

Ответы [ 2 ]

0 голосов
/ 28 мая 2018

Если вы используете .replace(';', ' ') для какой-либо строки - вернет новую строку с заменой.Так что вам нужно:

for i in excel_file['dateTime']:
    excel_file['dateTime'][i] = i.replace(';', ' ')  # probably

Вот если вам нужно заменить.Но @ john-zwinck также предложил лучшее решение для вашего случая

0 голосов
/ 28 мая 2018

Не используйте петли for.Вместо этого:

excel_file['dateTime'] = excel_file['dateTime'].str.replace(';', ' ')

В этом ответе подразумевается тот факт, что str.replace() возвращает новую строку, а не изменяет исходную строку.Это был функциональный дефект в вашем исходном коде.Но делать это без цикла for будет во много раз быстрее.

Ссылка: https://pandas.pydata.org/pandas-docs/stable/generated/pandas.Series.str.replace.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...