Home > OS >  Is there a more elegant way to initialize empty dataframes
Is there a more elegant way to initialize empty dataframes

Time:06-30

isd = pd.DataFrame()
ind = pd.DataFrame()
exd = pd.DataFrame()
psd = pd.DataFrame()
visd = pd.DataFrame()
vind = pd.DataFrame()
vexd = pd.DataFrame()
sd = pd.DataFrame()
ise = pd.DataFrame()
idb = pd.DataFrame()
mdd = pd.DataFrame()
add = pd.DataFrame()

Is there any alternate way to make it elegant and faster?

CodePudding user response:

Use a dictionary of dataframes, especially of the code for some data frames is going to share some similarities. This will allows doing some operations using loops or functions:

dct = {n: pd.DataFrame() for n in ['isd', 'ind', 'exd']} 

CodePudding user response:

If you want to avoid needing to numerically index each of the DataFrames, but would rather be able to access them directly by their name:

import pandas as pd

table_names = ['df1', 'df2', 'df3']
for name in table_names:
  exec('%s = pd.DataFrame()' % name, locals(), locals())

print(df1)

This approach uses exec, which essentially runs a string as if it were python code. I'm just formatting each of the predetermined names into the string in a for-loop.

CodePudding user response:

You can do something like this:

dfs = ['isd', 'ind', 'exd']
df_list = [pd.DataFrame() for df in dfs ]

CodePudding user response:

I think you can go this way

import pandas as pd

a, b, c, d = [pd.DataFrame()]*4
  • Related