Панды, создающие условный столбец на основе значения другого столбца - PullRequest
0 голосов
/ 20 сентября 2018

У меня есть два df's

df1:

index    text
1        string1
2        string2
3        string3
4        a
5        string5
6        a

df2:

index    text
4        string4
6        string6

Как заменить текст 'a' в df1 найденными значениямив df2 на основе индекса, чтобы он показывал, как показано ниже.

df3:

index    text
1        string1
2        string2
3        string3
4        string4
5        string5
6        string6

Ответы [ 2 ]

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

Вы можете использовать панд update как:

df1.set_index('index',inplace=True)
df2.set_index('index',inplace=True)
df1.update(df2) #df1 is changed

Или

df1.loc[df2.index,'text'] = df2['text'] #df1 is changed

Или Выход будет в df3, тогда

df3 = df1.copy()
df3.update(df2) #df3 is changed

Все они производят:

       text
index   
1   string1
2   string2
3   string3
4   string4
5   string5
6   string6
0 голосов
/ 20 сентября 2018

Это будет работать

pd.merge(df1[[]], df2, left_index=True, right_index=True)

или

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