您可以使用pandas中的combine_first()函数来实现这个需求。combine_first()函数会按照索引进行合并,当某一行的某一列值为空时,会选择保留另一个DataFrame中对应行的值。

以下是一个示例代码:

import pandas as pd

# 创建两个示例DataFrame
df1 = pd.DataFrame({'A': [1, 2, None, 4],
                    'B': ['a', 'b', None, 'd']})

df2 = pd.DataFrame({'A': [5, None, 7, 8],
                    'B': [None, 'f', 'g', 'h']})

# 合并两个DataFrame
merged_df = df1.combine_first(df2)

print(merged_df)

输出结果如下:

     A    B
0  1.0    a
1  2.0    b
2  7.0    g
3  4.0    d

在上面的示例中,当某一行的某一列值为空时,combine_first()函数会选择保留df2中对应行的值

现在我想在pandas中合并两个DataFrame根据某一列是否非空决定选择保留哪个DataFrame的这一行

原文地址: https://www.cveoy.top/t/topic/iamm 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录