Pandas基于联接将列从一个数据帧添加到另一个数据帧

2024-05-18 23:30:26 发布

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

假设我有两个数据帧。我想基于列查找将dataframe 1的列添加到dataframe 2。如果连接不可能,我希望在额外的列中有一个特定的常量(这样我就可以对此进行过滤)。

图形化:

enter image description here

代码:

import pandas as pd
import numpy as np

data = np.array([['','Col1','Col2'],
                ['Row1','2','TWO'],
                ['Row2','1','ONE']]
            )

data2 = np.array([['','Col3','Col4'],
                ['Row1','1','T1'],
                ['Row2','2','T2'],
                ['Row3','3','T3']]
            )

df = pd.DataFrame(data=data[1:,1:],
                  index=data[1:,0],
                  columns=data[0,1:])

df2 = pd.DataFrame(data=data2[1:,1:],
                  index=data2[1:,0],
                  columns=data2[0,1:])

result_df = df2 + join Col2 based on df2.Col3 = df.Col1. Add certain string constant if join fails. 

print(df)
print(df2)
print(result_df)

Tags: importdataframedfdataasnparraycol2
1条回答
网友
1楼 · 发布于 2024-05-18 23:30:26

使用^{}^{}

df = df2.join(df.set_index('Col1'), on='Col3')
print (df)
     Col3 Col4 Col2
Row1    1   T1  ONE
Row2    2   T2  TWO
Row3    3   T3  NaN

df2['Col2'] = df2['Col3'].map(df.set_index('Col1')['Col2'])
print (df2)
     Col3 Col4 Col2
Row1    1   T1  ONE
Row2    2   T2  TWO
Row3    3   T3  NaN

相关问题 更多 >

    热门问题