Замените значение int64 на «Нет» в зависимости от состояния другого столбца в кадре данных pandas. - PullRequest
0 голосов
/ 01 ноября 2018

У меня есть пандас датафрейм

[1]: https://i.stack.imgur.com/jWe9U.png

Условия:

'Если в RPoints есть значение, отличное от -1, то любые 0 в kPoints должны рассматриваться как «Нет»

'Если в RPoints есть значение, отличное от -1, то любой 0 в WPoints должен рассматриваться как «Нет»

Типы данных:

kPoints         int64

RPoints         int64

WPoints         int64

Как заменить -1 на «Нет»? И я предполагаю, что «Нет» не будет полезным для анализа, так как я должен удалить те строки, содержащие «Нет»?

Ответы [ 2 ]

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

попробуйте

данные

   id  kpoints  Rpoints  Wpoints
0   1     1241       -1     1466
1   2        0     1475        0
2   3        0     1586        0
3   4        0       -1        0

Используйте

data.loc[(data['Rpoints'] != -1) & (data['kpoints'] == 0), 'kpoints'] = None
data.loc[(data['Rpoints'] != -1) & (data['Wpoints'] == 0), 'Wpoints'] = None

выход

   id  kpoints  Rpoints  Wpoints
0   1   1241.0       -1   1466.0
1   2      NaN     1475      NaN
2   3      NaN     1586      NaN
3   4      0.0       -1      0.0

Простой data.dropna() удалит все строки n

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

Вы можете заменить один столбец и изменить его тип:

df['foo'] = df['foo'].astype(np.object)

тогда:

df['foo'][0] = None

Обратите внимание, что это замедлит любую обработку столбца, поскольку типы теперь являются объектами Python, а не целыми числами в массиве.

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