Python - Pandas - заменить строку из столбца на основе значения из другого столбца. - PullRequest
0 голосов
/ 13 февраля 2020

У меня есть фрейм данных со следующими данными:

d = {'col0': ['Table 1', 'Table 2'], 'col1': ['Tablename: Table 1', 'Tablename: Table 2'], 'col2': ['Table A', 'Table B']}

enter image description here

Я пытаюсь заменить на col2 существующие значения на col0 со значениями от col2.

В основном мой вывод будет таким:

enter image description here

Я пытался сделать простой замените такие как:

df['col3'] = df['col1'].replace(df.col0, df['col2'], regex = True)
print(df)

Но это дает мне "TypeError: replace() takes no keyword arguments"

Затем я пытаюсь это:

df['col3'] = df['col1'].replace(df.col0, str(df['col2']), regex = True)
print(df)

Но это дает мне список на col3 .. .

Как я могу это сделать?

Спасибо

1 Ответ

1 голос
/ 13 февраля 2020

Вы должны передать список или что-то подобное списку первому и второму параметрам replace. .values превращает df['col0'] и df['col2'] в numpy массивы, которые будут работать.

df['col3'] = df['col1'].replace(df['col0'].values, df['col2'].values, regex = True)

Вывод:

      col0                col1     col2                col3
0  Table 1  Tablename: Table 1  Table A  Tablename: Table A
1  Table 2  Tablename: Table 2  Table B  Tablename: Table B

С полной документацией pd.DataFrame.replace можно ознакомиться здесь .

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