Вставьте Null в столбец «A» на основе значений индекса - PullRequest
0 голосов
/ 01 ноября 2018

У меня есть список с индексами «l1», и я хочу заменить значения в столбце «A» на NaN, основанные на этих индексах

Текущие данные

Index                A
0        Reviewer: Newbie | 35-44 on Treatment for 1 
1        Reviewer: 45-54 on Treatment for less than 1 
2        Reviewer: Ocetech| 65-74 Male on Treatment 
3        Reviewer: virleo| 55-64 Female on Treatment 
4        Reviewer: Diane perrin| 65-74 on Treatment for

l1 = [1, 3, 4]

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

Index                A
0        Reviewer: Newbie | 35-44 on Treatment for 1 
1        NaN 
2        Reviewer: Ocetech| 65-74 Male on Treatment 
3        NaN
4        NaN

Ответы [ 2 ]

0 голосов
/ 01 ноября 2018

Только к деталям после воспроизведения вашего DataFrame ..

Импортируйте также numpy для установки значений Nan на нужный индекс.

import pandas as pd
import numpy as np

Ваш DataFrame:

$ df
                                                A
0     Reviewer: Newbie | 35-44 on Treatment for 1
1    Reviewer: 45-54 on Treatment for less than 1
2      Reviewer: Ocetech| 65-74 Male on Treatment
3     Reviewer: virleo| 55-64 Female on Treatment
4  Reviewer: Diane perrin| 65-74 on Treatment for

Ваш индексированный список:

$ l1
[1, 3, 4]

На основе loc Для столбца A для установки индекса на Nan с использованием Numpy ..

df.loc[l1,'A'] = np.nan

Результат:

print(df)
                                             A
0  Reviewer: Newbie | 35-44 on Treatment for 1
1                                          NaN
2   Reviewer: Ocetech| 65-74 Male on Treatment
3                                          NaN
4                                          NaN

Просто примечание, если у вас нет длинного списка Index для замены на NaN, вы можете указать их напрямую, передав индексный список.

$ df.loc[[1,3,4],'A'] = np.nan
$ print(df)
                                             A
0  Reviewer: Newbie | 35-44 on Treatment for 1
1                                          NaN
2   Reviewer: Ocetech| 65-74 Male on Treatment
3                                          NaN
4                                          NaN

Другой способ:

$ df.rename(index={1:np.nan, 3:np.nan, 4:np.nan}, inplace=True)
0 голосов
/ 01 ноября 2018

Используйте .loc для поиска индекса в l1 в вашем фрейме данных, а затем присвойте np.nan как:

import numpy as np
df.loc[l1,'A'] = np.nan
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...