Замена столбцов выборочного кадра (на основании других условий) - PullRequest
0 голосов
/ 11 сентября 2018

Замена выбранных столбцов данных (в зависимости от других условий) Проблема

df.loc[df.gender=='boy',:]['names'] = df.loc[df.gender=='boy',:]['names'].replace(',','/',regex=False)

print df (result)

    gender   names
0    boy      bob, joe
1    boy    john, nick
2   girl   sarah, ally
3   girl  maria, sally

df['names'] = df.loc[df.gender=='boy',:]['names'].replace(',','/',regex=False)

print df (result)

    gender       names
0    boy    bob, joe
1    boy  john, nick
2   girl         NaN
3   girl         NaN

Я также пытался df['names'].str.replace(',','/',regex=False,inplace=True), но получил сообщение об ошибке

TypeError: replace () получила неожиданный аргумент ключевого слова 'inplace' .

Желаемый результат

    gender        names
0    boy     bob/ joe
1    boy   john/ nick
2   girl  sarah, ally
3   girl maria, sally

Ответы [ 2 ]

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

метод "put" и "where" - немного быстрее, чем метод df.loc:

import numpy as np

np.put(df.names, np.where(df.gender == 'boy')[0], df.names.str.replace(',', '/'))
0 голосов
/ 11 сентября 2018

Использование:

df.loc[df.gender=='boy','names'] = df.names.str.replace(',','/')

>>> df
  gender         names
0    boy      bob/ joe
1    boy    john/ nick
2   girl   sarah, ally
3   girl  maria, sally
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...