vlookup between 2 Pandas dataframes

2024/10/13 3:28:55

I have 2 pandas Dataframes as follows.

DF1:

Security     ISIN
ABC           I1 
DEF           I2
JHK           I3
LMN           I4
OPQ           I5

and DF2:

ISIN      ValueI2        100I3        200I5        300

I would like to end up with a third dataframe looking like this:

DF3:

Security   ValueDEF       100JHK       200OPQ       300
Answer

You can use merge, by default is inner join, so how=inner is omit and if there is only one common column in both Dataframes, you can also omit parameter on='ISIN':

df3 = pd.merge(df1, df2)
#remove column ISIN
df3.drop('ISIN', axis=1, inplace=True)
print (df3)Security  Value
0      DEF    100
1      JHK    200
2      OPQ    300

Or map column ISIN by Series from df1:

print (df1.set_index('ISIN')['Security'])
ISIN
I1    ABC
I2    DEF
I3    JHK
I4    LMN
I5    OPQ
Name: Security, dtype: object#create new df by copy of df2
df3 = df2.copy()
df3['Security'] = df3.ISIN.map(df1.set_index('ISIN')['Security'])
#remove column ISIN
df3.drop('ISIN', axis=1, inplace=True)
#change order of columns
df3 = df3[['Security','Value']]
print (df3)Security  Value
0      DEF    100
1      JHK    200
2      OPQ    300
https://en.xdnf.cn/q/69581.html

Related Q&A

replacing quotes, commas, apostrophes w/ regex - python/pandas

I have a column with addresses, and sometimes it has these characters I want to remove => - " - ,(apostrophe, double quotes, commas)I would like to replace these characters with space in one s…

Reading text from image

Any suggestions on converting these images to text? Im using pytesseract and its working wonderfully in most cases except this. Ideally Id read these numbers exactly. Worst case I can just try to u…

XGBoost and sparse matrix

I am trying to use xgboost to run -using python - on a classification problem, where I have the data in a numpy matrix X (rows = observations & columns = features) and the labels in a numpy array y…

How to preserve form fields in django after unsuccessful submit?

Code from views.py:def feedback(request):if request.method == "POST":form = CommentForm(request.POST)if form.is_valid():form.save()else:print("form.errors:", form.errors)else:form =…

Idiomatic way to parse POSIX timestamps in pandas?

I have a csv file with a time column representing POSIX timestamps in milliseconds. When I read it in pandas, it correctly reads it as Int64 but I would like to convert it to a DatetimeIndex. Right now…

Apply function on each column in a pandas dataframe

How I can write following function in more pandas way:def calculate_df_columns_mean(self, df):means = {}for column in df.columns.columns.tolist():cleaned_data = self.remove_outliers(df[column].tolist()…

Compare 2 consecutive rows and assign increasing value if different (using Pandas)

I have a dataframe df_in like so:import pandas as pd dic_in = {A:[aa,aa,bb,cc,cc,cc,cc,dd,dd,dd,ee],B:[200,200,200,400,400,500,700,700,900,900,200],C:[da,cs,fr,fs,se,at,yu,j5,31,ds,sz]} df_in = pd.Data…

searching for k nearest points

I have a large set of features that looks like this:id1 28273 20866 29961 27190 31790 19714 8643 14482 5384 .... upto 1000 id2 12343 45634 29961 27130 33790 14714 7633 15483 4484 .... id3 ..... ....…

Why does del (x) with parentheses around the variable name work?

Why does this piece of code work the way it does?x = 3 print(dir()) #output indicates that x is defined in the global scope del (x) print(dir()) #output indicates that x is not defined in the glob…

How to concisely represent if/else to specify CSS classes in Django templates

In a Django template, Id like to add CSS classes to a DIV based on certain "conditions", for example:<div class="pkg-buildinfo {% if v.release.version == pkg.b.release.version %}activ…