1

I want to get data from only df2 (all columns) by comparing 'no' filed in both df1 and df2.

My 3 line code is below, for this i'm getting all columns from df1 and df2 not able to trim fields from df1. How to achieve ?

I've 2 pandas dataframes like below :

df1:
no,name,salary
1,abc,100
2,def,105
3,abc,110
4,def,115
5,abc,120

df2:
no,name,salary,dept,addr
1,abc,100,IT1,ADDR1
2,abc,101,IT2,ADDR2
3,abc,102,IT3,ADDR3
4,abc,103,IT4,ADDR4
5,abc,104,IT5,ADDR5
6,abc,105,IT6,ADDR6
7,abc,106,IT7,ADDR7
8,abc,107,IT8,ADDR8

df1 = pd.read_csv("D:\\data\\data1.csv")
df2 = pd.read_csv("D:\\data\\data2.csv")
resDF = pd.merge(df1, df2, on='no' , how='inner')
RK.
  • 571
  • 4
  • 13
  • 29
  • Will this be of any help? https://stackoverflow.com/questions/41815079/pandas-merge-join-two-data-frames-on-multiple-columns – Denis Rasulev Feb 05 '19 at 08:53

1 Answers1

1

I think you need filter only no column, then on and how parameters are not necessary:

resDF = pd.merge(df1[['no']], df2)

Or use boolean indexing with filtering by isin:

resDF = df2[df2['no'].isin(df1['no'])]
jezrael
  • 822,522
  • 95
  • 1,334
  • 1,252