Pandas 如何从Series中移除NaN值
在pandas系列构造函数中,使用dropna()方法可以从系列对象中移除缺失值。它不会更新原始的系列对象,而是返回另一个具有更新值的系列对象。
dropna()方法的参数包括axis、inplace和how。
示例1
# importing packages
import pandas as pd
import numpy as np
# Creating Series objects
sr = pd.Series([42, np.nan, 55, 42, np.nan, 73, np.nan, 55, 76, 87], index=list("ABCDEFGHIJ"))
print('Series object:',sr)
# Remove missing elements
result = sr.dropna()
# display output
print(result)
解释
初始时,我们创建了一个带有标记索引值的pandas Series对象,其中包含一些NaN值。在创建pandas系列对象后,我们应用了dropna()方法来删除缺失值。
输出
Series object:
A 42.0
B NaN
C 55.0
D 42.0
E NaN
F 73.0
G NaN
H 55.0
I 76.0
J 87.0
dtype: float64
A 42.0
C 55.0
D 42.0
F 73.0
H 55.0
I 76.0
J 87.0
dtype: float64
在上面的输出块中,我们可以看到初始和结果系列对象。第二个系列对象是删除了缺失值的输出对象。
示例2
# importing packages
import pandas as pd
import numpy as np
dates = pd.date_range('2021-06-01', periods=10, freq='D')
#creating pandas Series with date index
sr = pd.Series([np.nan, 61, 72, 11, np.nan, 24, 56, 30, np.nan, 55], index=dates)
print('Series object:',sr)
# Remove missing elements
result = sr.dropna()
# display output
print(result)
解释
在下面的示例中,我们创建了一个带有日期范围索引值的pandas Series对象,并且该系列对象“sr”中存在一些NaN值。在创建pandas系列对象之后,我们使用dropna()方法来删除这些NaN值。
输出
Series object:
2021-06-01 NaN
2021-06-02 61.0
2021-06-03 72.0
2021-06-04 11.0
2021-06-05 NaN
2021-06-06 24.0
2021-06-07 56.0
2021-06-08 30.0
2021-06-09 NaN
2021-06-10 55.0
Freq: D, dtype: float64
2021-06-02 61.0
2021-06-03 72.0
2021-06-04 11.0
2021-06-06 24.0
2021-06-07 56.0
2021-06-08 30.0
2021-06-10 55.0
dtype: float64
在这里,我们得到了一个新的系列对象,其中包含已删除的NaN值。在上面的输出块中,我们可以看到初始的和最终的系列对象。第一个对象是初始系列,第二个对象是dropna()方法的输出。