python-如何使用 pandas ,比较两个数据帧中2列之间的值并将其推到新的数据帧中?

因此,我是Python的新手,我正在尝试使用Pandas使用来自两个现有值的值创建一个新的 dataframe .基本上使用以下 dataframe :

df1 =
    乙
‘1”3’
b’4”3′
c’3”2′
d’9”1′

df2 =
    D
‘5”1’
b’2”0′
c’4”2′
d’1”9′

我需要创建一个循环,将df1 [A]中每行的值与df2 [C]中每行的值进行比较.如果值相等,则需要连接df1 [A,B]和df2 [C]并将那条线推到第三个数据帧.因此,以上示例的结果应如下所示:

dfnew =
    A B D
‘1”3”9’
b’4”3”2′

由于并非所有要使用的值都是整数,因此我也需要将这些值视为字符串.

我一直在检查其他类似的问题,但似乎没有一个答案能使我真正地完成所需的工作.

最佳答案

我认为您需要使用默认内部联接的mergedrop

df = pd.merge(df1, df2, left_on='A', right_on='C').drop('C', axis=1)

另一种使用重命名列进行连接的解决方案:

df = pd.merge(df1, df2.rename(columns={'C':'A'}), on='A')

print (df)
     A    B    D
0  '1'  '3'  '9'
1  '4'  '3'  '2'

注意:

连接列中的值必须唯一.