我有两个DataFrame:
>>> df1
above below
asn country
12345 US 5 4
MX 6 3
54321 MX 4 5
>>> df2
above below
asn country
12345 MX 1 0
54321 MX 0 1
US 1 0
请注意,虽然有一些常见索引(12345/MX
和54321/MX
),但有些索引仅显示在df1
(12345/US
)中,而某些索引仅显示在df2
(54321/US
)
我希望将这些值一起添加,以便如果df1
中不存在某行,则会添加该行,如果df2
中不存在行,则计数不受影响。
期望的输出:
>>> (df1 + df2, somehow)
12345 US 5 4
MX 7 3
54321 MX 4 6
US 1 0
发生了什么事:
>>> df1 + df2
12345 US NaN NaN
MX 7.0 3.0
54321 MX 4.0 6.0
US NaN NaN
答案 0 :(得分:3)
将add
与fill_value
参数一起使用:
df1.add(df2, fill_value=0)
输出:
above below
asn country
12345 MX 7.0 3.0
US 5.0 4.0
54321 MX 4.0 6.0
US 1.0 0.0
而且,你可以astype
回到整数:
df1.add(df2, fill_value=0).astype(int)
输出:
above below
asn country
12345 MX 7 3
US 5 4
54321 MX 4 6
US 1 0