Как удалить значения NaN из списка построения со значениями строк в Pandas DataFrame - PullRequest
1 голос
/ 01 ноября 2019

Huy Guys,

У меня есть столб в пандах, представляющий собой список со всеми значениями из строки. Как пример ниже.

print(df4['List']) 

0 [8,9,10,25,14,25,14,17,19,30]
1 [nan,85,48,75,nan,96,32,14,15,21,28,17,nan]
2 [nan,85,48,75,nan,]
3 [1,nan]
4 [85,75,41,nan]
5 [nan,65,34]

Как я могу удалить эти значения 'nan' из моих списков?

Я попробовал некоторые обычные методы списка в Python, однако я не получаюзаставить его иметь тот же результат в pandas DataFrame.

Как этот:

while True:
    try:
        df4['PNs NaNs Removed'] = df4['List'].delete([nan])
    except ValueError:
        break

Ответы [ 3 ]

0 голосов
/ 04 ноября 2019

Вы можете использовать заменить в вашем списке

Эти ответы могут помочь вам

найти и заменить элементы в списке

Заменить значения в списке, используя Python

0 голосов
/ 05 ноября 2019

Оказывается, что есть много разных способов указать и обработать NaN значения, и это может стать довольно грязным. Это решение проверяет значения, используя pandas.isna(), который должен работать для более широкого диапазона значений, чем numpy.isnan().

import pandas as pd


df4['List'] = df4['List'].apply(lambda col_val: [item for item in col_val if not pd.isna(item)])
0 голосов
/ 01 ноября 2019

Я пытался избежать итераций, используя функцию Series.dropna:

def no_nan(listy):
    return list(pd.Series(listy).dropna())

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