因此,我是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′
由于并非所有要使用的值都是整数,因此我也需要将这些值视为字符串.
我一直在检查其他类似的问题,但似乎没有一个答案能使我真正地完成所需的工作.
我认为您需要使用默认内部联接的
merge
和
drop
:
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'
注意:
连接列中的值必须唯一.