📜  pandas 丢弃零值 - Python (1)

📅  最后修改于: 2023-12-03 15:18:14.326000             🧑  作者: Mango

Pandas 丢弃零值 - Python

在数据处理中,我们经常会碰到一些缺失值,也就是零值。Pandas提供了很多方法来处理缺失值。本文将介绍如何使用Pandas来丢弃零值。

丢弃包含零值的行或列

dropna()是丢弃缺失值最常用的方法。默认情况下,它将丢弃所有包含任何缺失值的行。以下是一个简单的示例:

import pandas as pd
import numpy as np

df = pd.DataFrame({"A": [1, 2, np.nan],
                   "B": [3, np.nan, np.nan],
                   "C": [4, 5, 6]})
print(df.dropna())

输出:

     A    B  C
0  1.0  3.0  4

上面的代码中,我们创建了一个包含零值的DataFrame,并使用dropna()方法丢弃了包含缺失值的行。我们还可以使用dropna()方法删除包含任何NaN值的列,如下所示:

print(df.dropna(axis=1))

输出:

   C
0  4
1  5
2  6
仅丢弃所有值都为零的行或列

如果您要删除只包含缺少数据的行或列,则可以使用dropna()方法的how参数。how参数可用于控制行或列中的元素有多少缺失。以下是如何仅丢弃所有值都为零的行或列的示例:

df = pd.DataFrame({"A": [1, 2, np.nan],
                   "B": [3, np.nan, np.nan],
                   "C": [4, 5, np.nan]})

# 丢弃所有列中的缺失值
print(df.dropna(axis=1, how='all'))

# 丢弃所有行中的缺失值
print(df.dropna(axis=0, how='all'))

上面的代码中,我们将丢弃所有包含所有NaN值的列和行。输出如下:

     A    B    C
0  1.0  3.0  4.0
1  2.0  NaN  5.0
2  NaN  NaN  NaN

     A    B    C
0  1.0  3.0  4.0
1  2.0  NaN  5.0
丢弃特定列中的缺失值

如果您只想丢弃某些列中的缺失值,则可以使用dropna()方法的subset参数。例如,以下代码行将仅丢弃列A中的缺失值:

print(df.dropna(subset=['A']))

输出:

     A    B    C
0  1.0  3.0  4.0
1  2.0  NaN  5.0
丢弃并替换缺失值

如果您想要替换NaN值而不是删除它们,您可以使用fillna()函数来替换它们。例如,以下是将所有NaN值替换为0的示例:

print(df.fillna(0))

输出:

     A    B    C
0  1.0  3.0  4.0
1  2.0  0.0  5.0
2  0.0  0.0  0.0

这将把所有NaN值替换为0。您还可以使用其他值来替换NaN值。

结论

Pandas提供丰富的方法来处理缺失值。在数据处理时,学会如何利用这些方法将是非常重要的。在本文中,我们介绍了如何使用dropna()方法丢弃包含零值的行或列,如何仅丢弃所有值都是零的行或列,如何丢弃特定列中的缺失值,以及如何丢弃并替换缺失值。