3 回答

TA貢獻1852條經驗 獲得超1個贊
我使用 add 方法和combine_first方法來獲得結果。select_dtypes允許基于數據類型的操作。
(df1
.add(df2.select_dtypes(include='number'))
.combine_first(df1)
)
a b c d
0 2 2 dd 2
1 2 2 ee 2
2 2 2 ff 2

TA貢獻1785條經驗 獲得超8個贊
嘗試這個 :
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")

TA貢獻1821條經驗 獲得超5個贊
可以試試(假設列c可以取自第一個數據框)
>>> mask = ['a', 'b', 'd']
>>> df_out = df1[mask] + df2[mask]
>>> df_out['c'] = df1['c']
>>> df_out
a b d c
0 2 2 2 dd
1 2 2 2 ee
2 2 2 2 ff
添加回答
舉報