Xóa NaN khỏi loạt gấu trúc


81

Có cách nào để xóa giá trị NaN khỏi chuỗi gấu trúc không? Tôi có một bộ truyện có thể có hoặc không một số giá trị NaN trong đó và tôi muốn trả lại bản sao của bộ truyện đã xóa tất cả các giá trị NaN.

Câu trả lời:


119
>>> s = pd.Series([1,2,3,4,np.NaN,5,np.NaN])
>>> s[~s.isnull()]
0    1
1    2
2    3
3    4
5    5

cập nhật hoặc thậm chí là cách tiếp cận tốt hơn như @DSM được đề xuất trong nhận xét, sử dụng pandas.Series.dropna():

>>> s.dropna()
0    1
1    2
2    3
3    4
5    5

5

Một cách sử dụng nhỏ của np.nan ! = np.nan

s[s==s]
Out[953]: 
0    1.0
1    2.0
2    3.0
3    4.0
5    5.0
dtype: float64

Thêm thông tin

np.nan == np.nan
Out[954]: False

1

Nếu bạn có một serie gấu trúc với NaN và muốn xóa nó (mà không làm mất chỉ mục):

serie = serie.dropna ()

# create data for example
data = np.array(['g', 'e', 'e', 'k', 's']) 
ser = pd.Series(data)
ser.replace('e', np.NAN)
print(ser)

0      g
1    NaN
2    NaN
3      k
4      s
dtype: object

# the code
ser = ser.dropna()
print(ser)

0    g
3    k
4    s
dtype: object
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.