根据“第一个”数据帧中的相似列合并两个数据帧?

时间:2019-11-14 13:34:15

标签: python pandas dataframe

我必须基于df1中的相似列合并两个数据框

df1

            A      B
        0  john   id1
        1  parker id2
        2  david  id3
        3  will   id4

df2

            C          B
        0  letterj    id1
        1  letterp    id2
        2  letterd    id3
        3  letterw    id4
        4  lettert    id5
        5  lettero    id7

final_df

            A      B        C
        0  john   id1    letterj
        1  parker id2    letterp
        2  david  id3    letterd
        3  will   id4    letterw

3 个答案:

答案 0 :(得分:1)

 <Page.DataContext>
    <PDB:UsersViewModel x:Name="vm"/>
</Page.DataContext>


<Grid>
    <Grid.RowDefinitions>
        <RowDefinition Height="Auto"/>
        <RowDefinition Height="*" />
    </Grid.RowDefinitions>
    <!--Page Header info content-->
    <Grid Grid.Row="0">
        <TextBlock Text="{Binding SelectedUser.Name}"/>
        <TextBlock Text="{Binding ElementName=myGrd, Path=CurrentColumn.DisplayIndex}"/>
    </Grid>
    <!--Datagrid content-->
    <DataGrid x:Name="myGrd" 
              SelectionMode="Single"    
              SelectionUnit="Cell"
              CurrentItem="{Binding SelectedUser, Mode=TwoWay}"
              CurrentColumn="{Binding CurrentColumn, Mode=TwoWay}"
              IsReadOnly="True"
              Grid.Row="1" 
              ItemsSource="{Binding FilteredUserList}" 
              AutoGenerateColumns="True"             
              CanUserAddRows="False"
              >
        <DataGrid.Resources>
            <ContextMenu x:Key="ContextMenu">
                <ContextMenu.Items>
                    <MenuItem Header="{Binding 
                        RelativeSource={RelativeSource  
                        FindAncestor,
                        AncestorType={x:Type Page}, 
                        AncestorLevel=4}, Path=vm}" />
                </ContextMenu.Items>
            </ContextMenu>
        </DataGrid.Resources>

        <DataGrid.CellStyle>
            <Style TargetType="DataGridCell">
                <Setter Property="ContextMenu" Value="{StaticResource ContextMenu}"/>
            </Style>
        </DataGrid.CellStyle>
    </DataGrid>
</Grid>

答案 1 :(得分:0)

使用此:

df1.merge(df2, how='left')

答案 2 :(得分:0)

要基于df1中的相似列合并两个数据框,您必须执行以下操作:

final_df = pd.merge(df1,df2, how ='left', on="B")