Merge the dataframes dynamically

2024/9/21 1:27:12

I am extracting data from API's to generate a report. But the number of API's are dynamic for each report. It can be 1,2,3,5 etc. Once we get the data , we need to store the data as dataframe, to generate report on required columns having a common column in all the dataframes.

for example:

dataframe1:

  emp_id  salary
1  5642    50k
2  7865    75k
3  9876    30k
4  1874    60k

dataframe2:

  emp_id  Name   DOJ
1  5642   Jack  23DEC
2  9876   Sam   07APR

dataframe3:

  emp_id  Designation    Status
1  5642    Developer    Available
2  7865    Testing      Available
3  9876     BA          Resigned
4  7590    Developer    Resigned
5  4765    Developer    Available

Now how to store these data to a variable so that we can use them for data manipulation using pandas. Since number of API urls are dynamic.

Required Output:

emp_id    Name   Designation   Status
1  5642   Jack    Developer   Available
2  7865   NAN    Testing      Available
3  9876   Sam      BA         Available
4  1874   NAN      NAN          NAN
Answer

You can use reduce function. If df_list is your list of data frames then you can merge an arbitrary number of data frames by a key, as follows:

import pandas as pd
from functools import reduce
reduce(lambda x, y: pd.merge(x, y, on = 'emp_id'), df_list)
https://en.xdnf.cn/q/119257.html

Related Q&A

Read an xml element using python

I have an xml file. I want to search for a specific word in the file, and if i find it- i want to copy all of the xml element the word was in it.for example:<Actions><ActionGroup enabled="…

Using .rsplit() not giving desired results

I want to manipulate a string using .rsplit() so that anything after the last comma in a string of data is split using commas. As an example:,000...should be changed to:,0,0,0,In order to this I am usi…

Concatenate numbers in binary [duplicate]

This question already has answers here:Convert int to binary string in Python(36 answers)Closed 7 years ago.When converting a number in binary in Python what you get is the following:b = bin(77) print(…

AttributeError: DataFrame object has no attribute path

Im trying incrementally to build a financial statement database. The first steps center around collecting 10-Ks from the SECs EDGAR database. I have code for pulling the relevant 8-Ks, 10-Ks, and 10-Qs…

two DataFrame plot in a single plot matplotlip

I want to plot two DataFrame in a single plot.Though, I have seen similar post but none seems to work out. First 5 rows of my dataframe looks like this: df1name type start stop stran…

Automate `lxc-attach` through ssh with Python

Question: How do I automate this process, and include all of the password prompts? Machine 1> ssh user2@machine2password: Machine 2> lxc-attach -n 0x1000 Container> ssh user3@machine3password…

Value of a key in a Python dictinary is not updating [duplicate]

This question already has answers here:Appending a dictionary to a list - I see a pointer like behavior(3 answers)Python The appended element in the list changes as its original variable changes(1 answ…

Python - __init__() missing 1 required positional argument:

Im kinda new to python and I cant get past this error: Traceback (most recent call last):File "***", line 63, in <module>bst = Node() TypeError: __init__() missing 1 required positional…

discord py - Custom command prefix doesnt work (no command run)

i have a problem that i cant solve. Im trying to add a prefix switcher for all guilds, that uses my bot. So Ive done that, but currently no command gets triggered and I cant find a solution since hours…

How to use sep parameter in .format?

I just started learning python and Im experimenting new things. isim = input("Name:") soyad = input("Surname:") yaş = input("Age:") edu = input("Education:") ge…