Как очистить значение из ячейки, если значение в другом столбце присутствует? - PullRequest
0 голосов
/ 11 декабря 2018

У меня есть df, который выглядит так:

col1    col2 
NaN     text
text    text
NaN     text
NaN     text

Я хочу очистить значение в col2, если NaN, если присутствует в col1.

Новый df должен выглядеть так:

col1    col2 
NaN     
text    text
NaN     
NaN     

Ответы [ 3 ]

0 голосов
/ 11 декабря 2018

Использование dropna + reindex

df.dropna('col1').reindex(df.index) # fixing by cold :-)

   col1  col2
0   NaN   NaN
1  text  text
2   NaN   NaN
3   NaN   NaN
0 голосов
/ 11 декабря 2018

1-й шаг: Создать df путем копирования образца OP. (Сначала скопируйте образец OP, а затем выполните следующую команду).

df=pd.read_clipboard();

2-й шаг: Не могли бы вы попробовать здесь.

df.loc[df['col1'].isnull(), 'col2'] = ''
df

Вывод будет следующим.

   col1  col2
0  NaN
1  text  text 
2  NaN
3  NaN  
0 голосов
/ 11 декабря 2018

Вам нужна операция mask ing:

df['col2'] = df['col2'].mask(df.col1.isna(), '')
# df['col2'] = np.where(df.col1.isna(), '', df['col2'])

df
   col1  col2
0   NaN      
1  text  text
2   NaN      
3   NaN      

Если вы хотите, чтобы во втором столбце вместо пробелов присутствовали NaN, пропустите второй параметр в mask.

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