如何从 Pandas 系列中删除 NaN?
pandasserver side programmingprogramming
在 Pandas 系列的构造函数中,名为 dropna() 的方法用于从系列对象中删除缺失值。并且它不会用移除的 NaN 值更新原始序列对象,而是返回另一个包含更新值的序列对象。
dropna() 方法的参数包括 axis、inplace 和 how。
示例 1
# 导入包 import pandas as pd import numpy as np # 创建序列对象 sr = pd.Series([42, np.nan, 55, 42, np.nan, 73, np.nan, 55, 76, 87], index=list("ABCDEFGHIJ")) print(&39;Series object:&39;,sr) # 移除缺失元素 result = sr.dropna() # 显示输出 打印结果
解释
最初,我们创建了一个带有标签索引值的 Pandas Series,该 Series 对象中存在一些 NaN 值。创建 Pandas Series 对象后,我们应用了 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
# 导入包 import pandas as pd import numpy as np dates = pd.date_range('2021-06-01', periods=10, freq='D') # 创建带有日期索引的 pandas 系列 sr = pd.Series([np.nan, 61, 72, 11, np.nan, 24, 56, 30, np.nan, 55], index=dates) print('Series object:',sr) # 移除缺失元素 result = sr.dropna() # 显示输出 print(result)
解释
在下面的示例中,我们创建了一个包含日期范围索引值的 Pandas 系列,并且该系列对象"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() 方法的输出。