在使用Python的pandas库处理数据时,经常会遇到数据缺失的情况,即某些单元格中的值为NaN(Not a Number)。为了保持数据的完整性和可用性,我们需要对这些缺失的值进行处理。根据另一列的条件来填充缺失值是一种常见的需求。
假设我们有一个DataFrame,其中包含两列:A
和B
。我们希望根据列B
的值来填充列A
中的NaN值。
import pandas as pd
import numpy as np
# 创建示例DataFrame
data = {
'A': [1, 2, np.nan, 4, np.nan],
'B': ['x', 'y', 'x', 'y', 'x']
}
df = pd.DataFrame(data)
print("原始DataFrame:")
print(df)
# 根据列'B'的值填充列'A'中的NaN值
# 如果'B'为'x',则用3填充;如果'B'为'y',则用5填充
df['A'] = df.apply(lambda row: 3 if pd.isna(row['A']) and row['B'] == 'x' else
5 if pd.isna(row['A']) and row['B'] == 'y' else row['A'], axis=1)
print("\n填充后的DataFrame:")
print(df)
A
有两个NaN值。apply
函数结合条件判断来决定如何填充NaN值。如果列B
的值为x
且列A
为NaN,则用3填充;如果列B
的值为y
且列A
为NaN,则用5填充。B
的条件被适当填充。这种方法灵活且强大,可以根据不同的业务逻辑和数据特性定制填充策略。在实际应用中,可以根据具体需求调整条件和填充值。
没有搜到相关的沙龙
领取专属 10元无门槛券
手把手带您无忧上云