在 Pandas 数据框架中,要删除包含 NaN 值的行,可以使用 dropna()
方法。该方法默认删除任何包含至少一个 NaN 数据的行。同时,还可以通过一些参数来进一步控制删除行的条件。
下面是一个完整的实例,演示如何使用 dropna()
方法删除包含 NaN 值的行:
import pandas as pd
import numpy as np
# 创建一个包含 NaN 值的数据框架
df = pd.DataFrame({'列1': [1, 2, np.nan], '列2': [4, np.nan, np.nan], '列3': [7, 8, 9]})
print(df)
# 使用 dropna() 方法删除包含 NaN 值的行
df = df.dropna()
print(df)
运行上述代码,将输出以下结果:
列1 列2 列3
0 1.0 4.0 7
1 2.0 NaN 8
2 NaN NaN 9
列1 列2 列3
0 1.0 4.0 7
可以看到,在第一次输出中,数据框架中包含了 NaN 值。而在第二次输出中,已经使用 dropna()
方法将包含 NaN 值的行删除了。
除了默认删除任何包含 NaN 数据的行之外,还可以通过以下参数进一步指定删除条件:
axis
:指定删除行还是列。默认为 0,即删除行。如果需要删除列,则设置为 1。how
:指定删除条件。默认为 any,即如果某行任何一个数据为 NaN,则删除该行。如果设置为 all,则表示只有当整行数据全部为 NaN 时才删除该行。thresh
:指定保留行的最小非 NaN 值数。默认为 None,即只要存在 NaN 值就删除该行。
下面是一个例子,演示如何使用 how
参数来只删除整行数据全部为 NaN 的行:
import pandas as pd
import numpy as np
# 创建一个包含 NaN 值的数据框架
df = pd.DataFrame({'列1': [1, 2, np.nan], '列2': [4, np.nan, np.nan], '列3': [7, 8, np.nan]})
print(df)
# 使用 dropna() 方法删除整行数据全部为 NaN 的行
df = df.dropna(how='all')
print(df)
运行上述代码,将输出以下结果:
列1 列2 列3
0 1.0 4.0 7
1 2.0 NaN 8
2 NaN NaN NaN
列1 列2 列3
0 1.0 4.0 7
1 2.0 NaN 8
可以看到,第二次输出中,只剩下了第一行和第二行的数据,而第三行因为所有数据均为 NaN 被删除了。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:如何在Pandas数据框架中删除有NaN值的行 - Python技术站