有条件的两个数据帧的组合

2024-10-02 00:37:57 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要组合两个dataframe的列(有大量的条目),这样第一个DF的一列就是另一个DF的索引

下面是一些示例代码

df1 = pd.DataFrame({'ID': ['ID1', 'ID2', 'ID3', 'ID4'],
'Feature': ['Feature1', 'Feature2', 'Feature3', 'Feature2'],
},index=[0, 1, 2, 3])

df2 = pd.DataFrame({'Feature': ['Feature1', 'Feature2', 'Feature3'],
'Property1': ['Property11', 'Property12', 'Property13'],
'Property2': ['Property21', 'Property22', 'Property23']},index=[0, 1, 2])
df2.set_index('Feature', inplace=True)

我希望输出是这样的

    ID   Feature    Property1    Property2
0   ID1  Feature1   Property11   Property21
1   ID2  Feature2   Property12   Property22
2   ID3  Feature3   Property13   Property23
3   ID4  Feature2   Property11   Property22

Tags: iddataframedfindexfeaturepdid3id2
2条回答

将其他数据帧的索引设置为要联接的列,然后重置索引:

df_result = df2.join(df1.set_index('Feature')).reset_index()

简单的合并

df1.merge(df2, left_on='Feature', right_index=True)

Out[264]:
    ID   Feature   Property1   Property2
0  ID1  Feature1  Property11  Property21
1  ID2  Feature2  Property12  Property22
3  ID4  Feature2  Property12  Property22
2  ID3  Feature3  Property13  Property23

相关问题 更多 >

    热门问题