两个数据框的特定列的总和值

我想对两个数据框的特定列求和。


例如:


df1 = pd.DataFrame({'a': [1,1,1], 'b': [1,1,1], 'c':['dd','ee','ff'], 'd':[1,1,1]})


df2 = pd.DataFrame({'a': [1,1,1], 'b': [1,1,1], 'c':['dd','ee','ff'], 'd':[1,1,1]})

所以我只想总结a,b和d列而不是c。


输出 :


a b c  d


2 2 dd 2


2 2 ee 2


2 3 ff 2

有什么解决办法吗?谢谢


慕莱坞森
浏览 75回答 3
3回答

小怪兽爱吃肉

我使用 add 方法和combine_first方法来获得结果。select_dtypes允许基于数据类型的操作。(df1.add(df2.select_dtypes(include='number')).combine_first(df1))    a   b   c   d0   2   2   dd  21   2   2   ee  22   2   2   ff  2

慕的地10843

尝试这个 :column_names = df1.columns.tolist()columnTotal_dict = {}for name in colum_names:    try:        df1[[name]] = df1[[name]].astype(int)        df2[[name]] = df2[[name]].astype(int)        sumCol_a_df1 = df1['a'].sum()        sumCol_a_df2 = df2['a'].sum()        columnTotal_dict[name] = sumCol_a_df1 + sumCol_a_df2    except ValueError:        print("Data in this column are not of type int. Skipping")

收到一只叮咚

可以试试(假设列c可以取自第一个数据框)>>> mask = ['a', 'b', 'd']>>> df_out = df1[mask] + df2[mask]>>> df_out['c'] = df1['c']>>> df_out   a  b  d   c0  2  2  2  dd1  2  2  2  ee2  2  2  2  ff
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python