I want to use reduce()
function to merge data.
final = reduce(lambda left,right: pd.merge(left,right,on='KEY',how="outer"), [df1, df2, df3, df4, df5, df6, df7, df8])
However, sometimes some dataframe df1
to df8
might be blank (but there is at least one dataframe not be blank).
And I do not want to detect which one.
For example, this time df1
to df7
are blank and only df8
is non-blank. Next time df1
, df2
, df5
are non-blank.
How should I do so?
Advertisement
Answer
You can rewrite your function to check for blank dataframes using the property DataFrame.empty
:
def my_merge(left,right): if left.empty: return right if right.empty: return left return pd.merge(left,right) final = reduce(my_merge, list_of_dfs)