Home > Net >  the robust way to combine multiple dataframe considering different input scenarios
the robust way to combine multiple dataframe considering different input scenarios

Time:04-06

There are three data frames, df_1, df_2 and df_3. I combined them as follows

result1 = df_1.append(df_2,ignore_index=True)   
result2 = result1.append(df_3,ignore_index=True)

Then result2 is the combined dataframe. This code segment current works fine if neither of these three input data frames is empty. However, in practice, any of these three input data frames can be empty. What is the most efficient approach to handle these different scenarios without implementing complex if-else logic to evaluate different scenarios, e.g., df_1 is empty, or both df_1 and df_3 are empty, etc.

CodePudding user response:

IIUC use concat with list of Dataframes, it working if all or any DataFrame(s) are empty:

df_1 = pd.DataFrame()
df_2 = pd.DataFrame()
df_3 = pd.DataFrame()

df = pd.concat([df_1, df_2, df_3],ignore_index=True)
print (df)
Empty DataFrame
Columns: []
Index: []

df_1 = pd.DataFrame()
df_2 = pd.DataFrame({'a':[1,2]})
df_3 = pd.DataFrame({'a':[10,20]})

df = pd.concat([df_1, df_2, df_3],ignore_index=True)
print (df)
    a
0   1
1   2
2  10
3  20

df_1 = pd.DataFrame()
df_2 = pd.DataFrame({'a':[1,2]})
df_3 = pd.DataFrame()

df = pd.concat([df_1, df_2, df_3],ignore_index=True)
print (df)
   a
0  1
1  2
  • Related