I want to use reduce()
function to merge data.
JavaScript
x
2
1
final = reduce(lambda left,right: pd.merge(left,right,on='KEY',how="outer"), [df1, df2, df3, df4, df5, df6, df7, df8])
2
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
:
JavaScript
1
7
1
def my_merge(left,right):
2
if left.empty: return right
3
if right.empty: return left
4
return pd.merge(left,right)
5
6
final = reduce(my_merge, list_of_dfs)
7