Заменить определенные значения в кадре данных - PullRequest
0 голосов
/ 21 сентября 2018

Как заменить определенные значения в Dataframe.Например, в приведенном ниже кадре данных я хочу заменить строки, начинающиеся с [AA, CB, EZ], а значение, которое я хочу заменить, равно ''

   df = pandas.DataFrame({'A': ['AA','BB','CB','DD','EZ'],'B':[6,7,8,9,10],'C':[11,12,13,14,15]})
$ df
    A   B   C
 0  AA   6  11
 1  BB   7  12
 2  CB   8  13
 3  DD   9  14
 4  EZ  10  15

$ Expected Ouputdf
    A   B   C
 0  AA   
 1  BB   7  12
 2  CB     
 3  DD   9  14
 4  EZ    

1 Ответ

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

Вы можете заменить значения логической маской на пустые строки, но получите смешанные типы - строки с числовыми значениями и некоторые функции должны завершиться с ошибкой:

mask = df['A'].str.startswith(('AA','CB','EZ'))

df.loc[mask, ['B', 'C']] = ''
print (df)
    A  B   C
0  AA       
1  BB  7  12
2  CB       
3  DD  9  14
4  EZ       

Лучше заменить значения на NaN s:

df.loc[mask, ['B', 'C']] = np.nan
print (df)
    A    B     C
0  AA  NaN   NaN
1  BB  7.0  12.0
2  CB  NaN   NaN
3  DD  9.0  14.0
4  EZ  NaN   NaN

Другое решение:

df[['B', 'C']] = df[['B', 'C']].mask(mask)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...