Python 熊猫用相似的组数据填充缺失的单元格

Python 熊猫用相似的组数据填充缺失的单元格,python,pandas,Python,Pandas,我试图用在其他字段中找到的数据填充缺少的数据,例如,我有一个表: Brand Model Make Toyota Corolla Japan Toyota Crescida Japan Toyota Land Cruiser Ford Escape America Ford Explorer America Ford Edge Ford Focus 我从其他行知道丰田来自日本,福特来自美国。我怎样才能在熊猫身上做到这一点

我试图用在其他字段中找到的数据填充缺少的数据,例如,我有一个表:

Brand   Model   Make
Toyota  Corolla Japan
Toyota  Crescida    Japan
Toyota  Land Cruiser    
Ford    Escape  America
Ford    Explorer    America
Ford    Edge    
Ford    Focus   
我从其他行知道丰田来自日本,福特来自美国。我怎样才能在熊猫身上做到这一点,给我以下的信息

Brand   Model   Make
Toyota  Corolla Japan
Toyota  Crescida    Japan
Toyota  Land Cruiser    Japan
Ford    Escape  America
Ford    Explorer    America
Ford    Edge    America
Ford    Focus   America

您可以使用
df=df1[['Brand','Make']].groupby(['Brand']).agg(lambda x:x.value_counts().index[0])。reset_index()
根据品牌获取Make列的常见事件。 之后,您可以使用以下代码

for index,value in enumerate(df1['Make']):
    if value==None:
        brand=df1['Brand'][index]
        df1['Make'][index]=df['Make'][df['Brand']==brand].to_list()[0]

我可以分两步解决这个问题:

  • 创建了另一个df: df2=pd.DataFrame(df.groupby('Brand')['Make'].first())

  • 从df2查找Make以填充原始df: df['Make']=df.Brand.apply(lambda x:df2[df2['Brand']==x]['Make'])

    品牌模型制作 0丰田花冠日本 1丰田Crescida日本 2丰田普拉多日本公司


  • 你尝试了什么?
    df['Make']=df.groupby('Brand')['Make'].fillna(method='ffill')