2016-05-02 12 views
5

Chcę pozbyć się niektórych rekordów z NaN. To działa idealnie:Pandy zastępują wszystkie pozycje z rzędu NaN, jeśli jedna wartość to NaN

df.dropna(axis=0, how='any',inplace=True) 

Jednak zmienia kształt mojej ramki danych, a indeks nie jest już równomiernie rozmieszczony. Dlatego chciałbym zamienić wszystkie elementy w tych wierszach na np.nan. Czy istnieje prosty sposób na zrobienie tego?

Myślałem o ponownym próbkowaniu ramki danych po dropna, ale to tylko wydaje się działać z określonym interwałem, podczas gdy ja wolałbym używać oryginalnego indeksu. Innym podejściem byłoby pętli nad ramką danych z iterrows, ale to również wydaje się kłopotliwe.

+0

Jeśli problem polega na zmianie indeksu, wystarczy go zresetować prawidłowo? df = df.reset_index (drop = True) – ysearka

Odpowiedz

2

Poniższe polecenie wybiera wszystkie wiersze o dowolnej wartości równej Nan i przypisuje NaN do pozostałych wierszy.

df.loc[df.isnull().any(axis=1), :] = np.nan 
Powiązane problemy