📅  最后修改于: 2023-12-03 15:07:13.945000             🧑  作者: Mango
在数据分析过程中,我们常常会遇到缺失值 (NA) 的问题。而在 Python 中,我们可以使用 Pandas 库来处理数据框中的缺失值。其中,一种处理方法是将含有 NA 的行/列从数据框中删除,以保留数据分析的准确性。
我们可以使用 dropna()
方法来删除含有 NA 的行。例如,我们有一个如下所示的数据框:
import pandas as pd
df = pd.DataFrame({
'A': [1, 2, 3, None, 5],
'B': [6, 7, None, 9, None],
'C': [None, 11, 12, 13, 14]
})
| | A | B | C | |---:|----:|----:|----:| | 0 | 1 | 6 | NaN | | 1 | 2 | 7 | 11 | | 2 | 3 | NaN | 12 | | 3 | NaN | 9 | 13 | | 4 | 5 | NaN | 14 |
我们可以使用以下代码删除含有 NA 的行:
df.dropna(axis=0, inplace=True)
其中,axis=0
表示删除行,inplace=True
表示在原始数据框上修改。删除后的数据框如下所示:
| | A | B | C | |---:|---:|---:|----:| | 1 | 2 | 7 | 11 |
我们可以使用 dropna()
方法来删除含有 NA 的列。例如,我们有一个如下所示的数据框:
import pandas as pd
df = pd.DataFrame({
'A': [1, 2, 3, None, 5],
'B': [6, 7, None, 9, None],
'C': [None, 11, 12, 13, 14]
})
| | A | B | C | |---:|----:|----:|----:| | 0 | 1 | 6 | NaN | | 1 | 2 | 7 | 11 | | 2 | 3 | NaN | 12 | | 3 | NaN | 9 | 13 | | 4 | 5 | NaN | 14 |
我们可以使用以下代码删除含有 NA 的列:
df.dropna(axis=1, inplace=True)
其中,axis=1
表示删除列,inplace=True
表示在原始数据框上修改。删除后的数据框如下所示:
| | A | |---:|----:| | 0 | 1 | | 1 | 2 | | 2 | 3 | | 3 | NaN | | 4 | 5 |
如果我们只想删除某些特定列含有 NA 的行,可以使用 subset
参数来实现。例如,我们有一个如下所示的数据框:
import pandas as pd
df = pd.DataFrame({
'A': [1, 2, 3, None, 5],
'B': [6, 7, None, 9, None],
'C': [None, 11, 12, 13, 14]
})
| | A | B | C | |---:|----:|----:|----:| | 0 | 1 | 6 | NaN | | 1 | 2 | 7 | 11 | | 2 | 3 | NaN | 12 | | 3 | NaN | 9 | 13 | | 4 | 5 | NaN | 14 |
我们可以使用以下代码删除含有 NA 的行:
df.dropna(subset=['B'], axis=0, inplace=True)
其中,subset=['B']
表示只考虑 'B' 这一列,axis=0
表示删除行,inplace=True
表示在原始数据框上修改。删除后的数据框如下所示:
| | A | B | C | |---:|---:|----:|----:| | 0 | 1 | 6 | NaN | | 1 | 2 | 7 | 11 | | 3 | nan| 9 | 13 |
完整代码如下所示:
import pandas as pd
# 删除 NA 行
df = pd.DataFrame({
'A': [1, 2, 3, None, 5],
'B': [6, 7, None, 9, None],
'C': [None, 11, 12, 13, 14]
})
df.dropna(axis=0, inplace=True)
# 删除 NA 列
df = pd.DataFrame({
'A': [1, 2, 3, None, 5],
'B': [6, 7, None, 9, None],
'C': [None, 11, 12, 13, 14]
})
df.dropna(axis=1, inplace=True)
# 删除特定列含有 NA 的行
df = pd.DataFrame({
'A': [1, 2, 3, None, 5],
'B': [6, 7, None, 9, None],
'C': [None, 11, 12, 13, 14]
})
df.dropna(subset=['B'], axis=0, inplace=True)
以上代码可以根据实际需要进行修改。