Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
139 views
in Technique[技术] by (71.8m points)

pandas - comparing two Dataframe columns to check if they have same value in python

I have two dataframes,

new1.
      Name       city
 0    sri won    chn
 1    pechi won  pune
 2    Ram won    mum
 0    pec won    kerala

new3
    req
0   pec
1   mut

I tried,

mask=new1.Name.str.contains("|".join(new3.req.values.tolist()))
new1[mask]

I am getting,

 new1[mask]
      Name       city
 1  pechi won    pune
 0  pec won      kerala

As "pechi" contains "pec", it took this valu. but I want the exact match between the values not "contains"

my desired output is,

 new1[mask]
      Name       city
 0  pec won      kerala
See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

You need that means "word boundary":

a = r'(' + "|".join(new3.req.values.tolist()) + r')'
print (a)
(pec|mut)

mask=new1.Name.str.contains(a)
df = new1[mask]
print (df)
      Name    city
0  pec won  kerala

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...