假设列和索引标签的值是相同的,那么如果在添加之前对两个df进行并集并重新编制索引,并用0填充NaN,那么就得到了所需的结果。在
如果列和索引标签不相同,则可以将组合标签组成两个数组:all_cols = x.columns | y.columns
all_indices = x.index | y.index
和reindex。在
以您的示例数据:
^{pr2}$
实际上,您可以reindex得到add:In [13]:
x.add(y, fill_value=0).reindex(index=all_cols,columns=all_cols).fillna(0)
Out[13]:
a b c d e
a 10.3 1.3 1.4 1.5 9.2
b 2.1 2.2 2.3 2.4 0.0
c 3.3 3.4 3.5 3.6 0.0
d 4.2 4.3 4.4 4.5 0.0
e 8.1 0.0 0.0 0.0 8.2
编辑
对于实际数据,需要指定第一个未命名列是索引:X= pd.read_csv('30203_Transpose.csv', index_col=0)
Y= pd.read_csv('62599_1999psCSV.csv', index_col=0)
此外,您的索引与列不同,因此需要单独聚合这些列all_cols = X.columns | Y.columns
all_indices = X.index | Y.index
然后您可以add:X.add(Y, fill_value=0).reindex(index=all_cols,columns=all_cols).fillna(0)