首页 > 解决方案 > 如何使用具有缺失信息的另一个数据框将缺失的数据插入熊猫数据框?

问题描述

假设我有一个这样的潜在客户数据框:

import pandas as pd

leads = {'Unique Identifier':['1','2','3','4','5','6','7','8'],
        'Name': ['brad','stacy','holly','mike','phil', 'chris','jane','glenn'],
        'Channel': [None,None,None,None,'facebook', 'facebook','google', 'facebook'],
        'Campaign': [None,None,None,None,'A', 'B','B', 'C'],
        'Gender': ['M','F','F','M','M', 'M','F','M'],
        'Signup Month':['Mar','Mar','Apr','May','May','May','Jun','Jun']
        }

leads_df = pd.DataFrame(leads)

leads_df

如下所示。它缺少前 4 个潜在客户的 Channel 和 Campaign 数据。

引线表

我有一个缺少数据的单独数据框:

missing = {'Unique Identifier':['1','2','3','4'],
        'Channel': ['google', 'email','facebook', 'google'],
        'Campaign': ['B', 'A','C', 'B']
        }

missing_df = pd.DataFrame(missing)

missing_df

缺少数据的表

在两个表中使用唯一标识符,我将如何将丢失的数据插入主要线索表?对于上下文,大约有 6,000 条线索缺少数据。

标签: pythonpandasdataframe

解决方案


您可以将两个数据框合并在一起,使用合并的结果更新列,然后继续删除合并的列。

data = leads_df.merge(missing_df, how='outer', on='Unique Identifier')
data['Channel'] = data['Channel_y'].fillna(data['Channel_x'])
data['Campaign'] = data['Campaign_y'].fillna(data['Campaign_x'])
data.drop(['Channel_x', 'Channel_y', 'Campaign_x', 'Campaign_y'], 1, inplace=True)

结果:

data
  Unique Identifier   Name Gender Signup Month   Channel Campaign
0                 1   brad      M          Mar    google        B
1                 2  stacy      F          Mar     email        A
2                 3  holly      F          Apr  facebook        C
3                 4   mike      M          May    google        B
4                 5   phil      M          May  facebook        A
5                 6  chris      M          May  facebook        B
6                 7   jane      F          Jun    google        B
7                 8  glenn      M          Jun  facebook        C

推荐阅读