Python DataFrame 中如果一列为 NaN 则取另一列数据

在数据处理过程中,我们经常需要处理包含缺失值的数据。Pandas 是一个流行的 Python 库,提供了强大的数据处理工具,其中的 DataFrame 是用于处理表格型数据最常用的数据结构。本文将介绍如何使用 Pandas DataFrame 来处理当一列数据为 NaN 时取另一列数据的情况。

创建 DataFrame

首先,我们需要创建一个包含缺失值的 DataFrame。我们可以使用 Pandas 提供的 pd.DataFrame() 函数来创建一个 DataFrame 对象,并传入一个包含缺失值的字典或列表。下面是一个示例:

import pandas as pd
import numpy as np

data = {
    'col1': [1, 2, np.nan, 4, 5],
    'col2': [np.nan, 2, 3, 4, 5]
}

df = pd.DataFrame(data)

上述代码创建了一个包含两列数据的 DataFrame,其中 col1 列包含一个缺失值(NaN),col2 列包含了一些数值。

处理缺失值

我们可以使用 Pandas 提供的一些函数和方法来处理缺失值。其中一个常用的方法是 fillna(),它可以用指定的值来填充缺失值。在本例中,我们想要根据 col1 列的值填充 col2 列的缺失值。下面是使用 fillna() 方法来处理缺失值的示例代码:

df['col2'] = df['col2'].fillna(df['col1'])

上述代码将 col2 列中的缺失值用 col1 列中的对应值填充。

完整代码示例

下面是一个完整的代码示例,展示了如何处理当一列数据为 NaN 时取另一列数据的情况:

import pandas as pd
import numpy as np

data = {
    'col1': [1, 2, np.nan, 4, 5],
    'col2': [np.nan, 2, 3, 4, 5]
}

df = pd.DataFrame(data)
df['col2'] = df['col2'].fillna(df['col1'])

print(df)

运行上述代码,输出结果如下:

   col1  col2
0   1.0   1.0
1   2.0   2.0
2   NaN   3.0
3   4.0   4.0
4   5.0   5.0

从输出结果可以看出,col2 列中的缺失值已经被 col1 列中的对应值填充。

总结

本文介绍了如何使用 Pandas DataFrame 来处理当一列数据为 NaN 时取另一列数据的情况。通过使用 Pandas 提供的 fillna() 方法,我们可以方便地填充缺失值。在实际数据处理过程中,了解如何处理缺失值是非常重要的,因为缺失值可能会对结果产生不良影响。Pandas 提供了丰富的函数和方法来处理缺失值,帮助我们更容易地进行数据清洗和分析。

状态图

下面是关于处理缺失值的状态图,使用 Mermaid 语法表示:

stateDiagram
    [*] --> Fillna
    Fillna --> [*]

上述状态图表示了处理缺失值的过程,其中 Fillna 是填充缺失值的操作。

参考资料

  • [Pandas Documentation](
  • [Python Data Analysis Library](