📅  最后修改于: 2023-12-03 15:24:04.039000             🧑  作者: Mango
在数据处理过程中,常常会遇到含有缺失值(NA/NaN)的数据,这些缺失值会影响数据的准确性和分析结果。因此,我们需要使用适当的方法处理缺失值。在 R 数据框中,我们可以使用无数种方法处理缺失值,本篇文章将介绍 R 数据框中删除 NA 值的方法。
删除某一行几乎是最常见的处理方式。
import pandas as pd
import numpy as np
df = pd.DataFrame({'A': [1, 2, np.nan],
'B': [4, np.nan, np.nan],
'C': [7, 8, 9]})
df.dropna()
这会删除含有 NA 值的所有行。此时结果将返回:
A B C
0 1.0 4.0 7
有时候,我们也需要删除某些列。
import pandas as pd
import numpy as np
df = pd.DataFrame({'A': [1, 2, np.nan],
'B': [4, np.nan, np.nan],
'C': [7, 8, 9]})
df.dropna(axis=1)
这里,我们使用 axis=1
参数来表示删除列而不是行。这种方法会删除所有含有 NA 值的列。此时结果将返回:
C
0 7
1 8
2 9
使用 thresh
参数来删除同时含有多个 NA 值的行。
import pandas as pd
import numpy as np
df = pd.DataFrame({'A': [1, 2, np.nan],
'B': [4, np.nan, np.nan],
'C': [7, np.nan, np.nan]})
df.dropna(thresh=2)
结果如下:
A B C
0 1.0 4.0 7.0
这里,我们选择了 thresh=2
,表示保留含有至少两个非 NA 值的行。
在某些情况下,我们可能不希望删除 NA 值,而是需要填充这些缺失值。此时我们可以使用 fillna
来填充 NA 值。
import pandas as pd
import numpy as np
df = pd.DataFrame({'A': [1, 2, np.nan],
'B': [4, np.nan, np.nan],
'C': [7, np.nan, 9]})
df.fillna(value=0)
结果如下:
A B C
0 1.0 4.0 7.0
1 2.0 0.0 0.0
2 0.0 0.0 9.0
最后,我们来看一下如何统计一个数据框中各列 NA 值的数量。可以通过 isnull
和 sum
方法来计算每列中 NA 值的数量。
import pandas as pd
import numpy as np
df = pd.DataFrame({'A': [1, 2, np.nan],
'B': [4, np.nan, np.nan],
'C': [7, np.nan, 9]})
df.isnull().sum()
结果如下:
A 1
B 2
C 1
dtype: int64
以上便是在 R 数据框中删除 NA 值的一些方法。完整的 R 数据框 API 及我们提供的文档请参阅 pandas 文档。