擅长:python、mysql、java
<p>另一种方式
使用<code>df.filter</code>筛选出<code>DF2</code>的数值列。将它们添加到<code>DF1</code>。什么结果是str.Chain<code>combine_first</code>的数值列和NaN的聚合结果,这将更新NaN</p>
<p><strong>选项1;2个数据帧</strong></p>
<p>如果只有两个帧</p>
<pre><code>RESULT_DF=(DF2.filter(like='total').add(DF1)).combine_first(DF1)
RESULT_DF
nameOne nameThree nameTwo total_one total_two
0 nn1 nn7 nn4 6 9
1 nn2 nn8 nn5 6 9
2 nn3 nn9 nn6 6 9
</code></pre>
<p><strong>选项2数据帧列表</strong></p>
<p>如果你有清单;在使用functools中的reduce后,选择非数字数据类型并加入求和</p>
<pre><code>DF3 = DF2.copy()
DF4 = DF1.copy()
LST=[DF1,DF2,DF3]
from functools import reduce
df = DF1.select_dtypes(exclude='int64').join(reduce(lambda x, y:\
(x.filter(like='total')).add(y.filter(like='total'), fill_value=0), LST))
print(df)
nameOne nameTwo nameThree total_one total_two
0 nn1 nn4 nn7 10 15
1 nn2 nn5 nn8 10 15
2 nn3 nn6 nn9 10 15
</code></pre>