簡體   English   中英

基於公共列從兩個數據幀中減去列

[英]Subtract columns from two data frames based on a common column

df1:

  1. 亞洲 34
  2. 美國 74
  3. 澳大利亞 92
  4. 非洲 44

df2:

  1. 亞洲 24
  2. 澳大利亞 90
  3. 非洲 30

我希望 df1 - df2 的 output 是

  1. 亞洲 10
  2. 美國 74
  3. 澳大利亞 2
  4. 非洲 14

我對此感到困擾,我是 pandas 的新手。 請幫忙。

使用Series.subSeries.map映射的第二個Series

df1['B'] = df1['B'].sub(df1['A'].map(df2.set_index('A')['B']), fill_value=0)
print (df1)
           A     B
0       Asia  10.0
1    America  74.0
2  Australia   2.0
3     Africa  14.0

如果可能,第一列的更改順序將兩個第一列轉換為索引DataFrame.set_index並減去:

df2 = df1.set_index('A')['B'].sub(df2.set_index('A')['B'], fill_value=0).reset_index()
print (df2)
           A     B
0     Africa  14.0
1    America  74.0
2       Asia  10.0
3  Australia   2.0

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM