Замена значений в одном столбце значениями в другом столбце - PullRequest
0 голосов
/ 23 октября 2018

Я импортировал набор данных, но некоторые значения в столбце «тромбоциты» были добавлены в новый столбец «X», оставив столбец «тромбоциты» с NaN на их месте.

Я хочуперебирать каждую запись в столбце тромбоцитов, и когда я нажимаю на значение NaN, я хочу заменить это значение на то, что находится в столбце «X».Вот что я попробовал ниже (что-то подобное прекрасно работало в R).

Понятия не имею, что я делаю не так.Я получаю сообщение об ошибке:

TypeError                                Traceback (most recent call last)

< ipython-input-2520-414f4874fae7 > in  < module >()

  3 import math

  4 

----> 5 for i in range(0, N-1):

  6     if math.isnan(data['platelet'][i]):

  7         data['platelet'][i] = data['X'][i]

TypeError: 'Series' object is not callable

N = len(data['platelet'])

import math  


for i in range(0, N-1):  

    if math.isnan(data['platelet'][i]):  

        data['platelet'][i] = data['X'][i]  

Ответы [ 2 ]

0 голосов
/ 23 октября 2018

Скорее всего, это как-то связано с вашими данными, потому что когда я моделирую ваш сценарий, он работает нормально.

Попробуйте добавить оператор печати ваших данных перед итерацией, а также между итерациями.

Также for i in range(0, N-1): необходимо изменить на for i in range(N):.Использование N-1 пропустит последнюю итерацию.0 тоже не нужно.

data = {}
data['platelet'] = [float('nan'),float('nan'),float('nan'),float('nan'),float('nan')]
data['X'] = [1,2,3,4,5]

N = len(data['platelet'])

import math  

for i in range(N):
    if math.isnan(data['platelet'][i]):
        data['platelet'][i] = data['X'][i]
0 голосов
/ 23 октября 2018

Просто сделайте это с помощью метода fillna:

data['platelet'] = data['platelet'].fillna(data['X'])

Это заполнит значения NA в данных ['platelet'] соответствующим значением в столбце X.

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