user785099
user785099

Reputation: 5563

the robust way to combine multiple dataframe considering different input scenarios

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.

Upvotes: 1

Views: 30

Answers (1)

jezrael
jezrael

Reputation: 863301

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

Upvotes: 1

Related Questions