如何从 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() 方法的输出。


相关文章