📅  最后修改于: 2023-12-03 15:33:24.782000             🧑  作者: Mango
在 Pandas 中,我们经常需要修改一列中的值来填补另一列中缺失的值。在这里,我们将讨论如何使用 Pandas 中的 fillna
方法来实现这一目标。
我们可以使用 DataFrame.apply()
方法来遍历 DataFrame 中的行并为缺失的值填充一个新值。假设我们有以下 DataFrame:
import numpy as np
import pandas as pd
df = pd.DataFrame({
'A': [1, 2, 3, np.nan, 5],
'B': [3, np.nan, np.nan, 6, 7],
'C': [1, 2, 3, 4, 5]
})
现在,我们想使用列 C
中的值来填充列 B
中的缺失值。我们可以使用如下代码:
df['B'] = df.apply(lambda row: row['C'] if pd.isna(row['B']) else row['B'], axis=1)
此代码行使用 apply
方法遍历每一行,并在需要时将列 C
中的值填充到列 B
中的缺失值中。我们使用 pd.isna
函数检测缺失值。
使用 DataFrame.apply()
方法可以实现我们想要的目标,但假设数据集非常大,这种方法可能会变得非常慢。在这种情况下,我们可以使用 Series.combine_first()
方法来快速填补缺失的值。
df['B'] = df['B'].combine_first(df['C'])
此代码行使用 combine_first()
方法,该方法将列 B
中的缺失值替换为列 C
中的值。
以上就是 Pandas 如何使用另一列中的值填补 na 的两种方法。无论哪种选择,都需要灵活运用,并根据数据集的大小和列数选择最佳策略。