如果有空白 DataFrame 则 reduce() 合并
reduce() to merge if there are blank DataFrame
我想使用reduce()
功能合并数据。
final = reduce(lambda left,right: pd.merge(left,right,on='KEY',how="outer"), [df1, df2, df3, df4, df5, df6, df7, df8])
然而,有时某些数据帧 df1
到 df8
可能是空白的(但至少有一个数据帧不是空白)。
我不想检测是哪一个。
比如这次df1
到df7
都是空的,只有df8
是非空的。下次 df1
、df2
、df5
非空。
我应该怎么做?
您可以重写函数以使用 属性 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)
我想使用reduce()
功能合并数据。
final = reduce(lambda left,right: pd.merge(left,right,on='KEY',how="outer"), [df1, df2, df3, df4, df5, df6, df7, df8])
然而,有时某些数据帧 df1
到 df8
可能是空白的(但至少有一个数据帧不是空白)。
我不想检测是哪一个。
比如这次df1
到df7
都是空的,只有df8
是非空的。下次 df1
、df2
、df5
非空。
我应该怎么做?
您可以重写函数以使用 属性 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)