如何从 Pandas Series 中移除 NaN 值?


在 pandas series 构造函数中,`dropna()` 方法用于移除 series 对象中的缺失值。它不会更新原始 series 对象,而是返回另一个包含已更新值的 series 对象。

`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 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

在上面的输出块中,我们可以看到初始和结果 series 对象。第二个 series 对象是移除缺失值后的输出对象。

示例 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,其中包含一些 NaN 值。“sr” series 对象包含一些 NaN 值。创建 pandas series 对象后,我们应用了 `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 值的 series 对象。在上面的输出块中,我们可以看到初始和结果 series 对象。第一个对象是初始 series,第二个对象是 `dropna()` 方法的输出。

更新于: 2022年3月9日

5K+ 次浏览

启动您的职业生涯

完成课程获得认证

开始学习
广告
© . All rights reserved.