Home > OS >  Is it possible to merge several data into one DataFrames from function?
Is it possible to merge several data into one DataFrames from function?

Time:07-27

Function uses name from loop and prints 10 or more data sets. I want to merge them in one DataFrames write into csv file.

def f(name):
        url = "https://apiurl"
        response = requests.get(url, params = {'page': 1}) 
        records = []
        for page_number in range(1, response.json().get("pages") 1):
            response = requests.get(url, params = {'page': page_number})
            records  = response.json().get('records')
            df = pd.DataFrame(records)
        return df

For loop to the function.

for row in valdf.itertuples():
    name = valdf.loc[row.Index, 'Account_ID']
    df1 = f(name)
    print(df1)

When I tried df.to_csv('df.csv') it only take last result from loop. Is it possible to merge them in a one DataFrames and export?

CodePudding user response:

create a list outside of the loop and use pd.concat()

dfs = []
for row in valdf.itertuples():
    name = valdf.loc[row.Index, 'Account_ID']
    df1 = f(name) 
    dfs.append(df1)

all_df = pd.concat(dfs)

this assumes the dfs all have the same n dimensions

  • Related