python - 如果有空白 DataFrame 则 reduce() 合并

标签 python pandas dataframe reduce

我想使用reduce()函数来合并数据。

final = reduce(lambda left,right: pd.merge(left,right,on='KEY',how="outer"), [df1, df2, df3, df4, df5, df6, df7, df8])

但是,有时某些数据帧df1df8可能是空白的(但至少有一个数据帧不是空白)。
我不想检测是哪一个。

比如这次df1df7都是空的,只有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)

关于python - 如果有空白 DataFrame 则 reduce() 合并,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67492323/

相关文章:

python - 视频情报 : Caller does not have permission

python - 将 Pandas 数据框拆分为单独的组

Python seaborn 绘图 : having a small issue while writing a function for bar plots

r - r中数据框列条目的成对比较

r - 使用行列索引对从数据框中的不同列中选择值的 Tidyverse 方法

python - 用于迭代 2 个列表的简单 for 循环

python - 创建一副纸牌的最佳方法是什么?

python - 使用 Keras 回调保存最佳 val_loss

Python:循环元组并将每个值插入到数据框中

python - 如何对 pandas Dataframe 的一列中的所有值进行集合并集?