Как заменить значения столбцов в одном информационном кадре из другого информационного кадра при условии? - PullRequest
0 голосов
/ 28 сентября 2018
import pandas as pd
df = pd.DataFrame({"A":["foo", "foo", "foo", "bar","Panda", "Panda", "Zootopia", "Zootopia"],"B":[0,1,1,1,0,1,1,1]})
df1 = pd.DataFrame({"A":["foo", "foo", "foo", "bar","Panda", "Panda", "Zootopia", "Zootopia","Toy Story"]})

Если столбец A в df и df1 совпадает, то замените столбец df1 A на столбец df B , а также подсчитайте количество не замененных значений и возьмите их список.

Ожидаемый результат

    A
0   0.0
1   1.0
2   1.0
3   1.0
4   0.0
5   1.0
6   1.0
7   1.0
8   Toy Story

Счетчик не заменен: 1

Кадр данных не заменен:

 0  A
     Toy Story

1 Ответ

0 голосов
/ 28 сентября 2018

Вот одно из решений:

num = len(df['A'])
if all(df1['A'][:num]==df['A'][:num]):
    df1['A'][:num] = df['B']

Вывод для df1:

           A
0          0
1          1
2          1
3          1
4          0
5          1
6          1
7          1
8  Toy Story

Если вы не хотите изменять df1, вы можете сделать его копию изапустите код:

num = len(df['A'])
df1_copy = df1.copy()
if all(df1_copy['A'][:num]==df['A'][:num]):
    df1_copy['A'][:num] = df['B']

Вывод для df1:

           A
0        foo
1        foo
2        foo
3        bar
4      Panda
5      Panda
6   Zootopia
7   Zootopia
8  Toy Story

Вывод для df1_copy:

           A
0          0
1          1
2          1
3          1
4          0
5          1
6          1
7          1
8  Toy Story
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...