【问题标题】:Find difference between two integer columns but by specific ID column [duplicate]查找两个整数列之间的差异,但按特定 ID 列 [重复]
【发布时间】:2020-12-09 06:04:15
【问题描述】:

我有以下两个数据框。

last_request_df:

name    fruit_id  sold
apple   123       1 
melon   456       12
banana  12        23

current_request_df:

name    fruit_id  sold
apple   123       5 
melon   456       19
banana  12        43
orange  55        3 
mango   66        0 

输出应基于匹配 last_request_df 和 current_request_df 中的 fruit_id 列并找出已售列中的差异:

差异_df:

name    fruit_id  sold
apple   123       4 
melon   456       7
banana  12        20
orange  55        3 
mango   66        0

我尝试了以下方法,但恐怕这与 fruid_id 列不匹配。

difference_df['sold_diff'] = current_request_df['sold'] - last_request_df['sold'] 

是否有根据我提供的数据捕获差异的首选方法?

【问题讨论】:

  • 是的,谢谢...这解决了我一直在寻找的问题。有时很难找到您想要解决的确切问题。感谢您指出这一点!

标签: python-3.x pandas dataframe


【解决方案1】:
 #Reset index to name for both dfs

 difference_df=current_request_df.set_index('name')
 last_request_df=last_request_df.set_index('name')
     

#Find the difference using sub. To do this ensure the two dfs have same index by reindexing 

difference_df['sold']=difference_df['sold'].sub(last_request_df.reindex(index=difference_df.index).fillna(0)['sold'])
    

  

         fruit_id  sold
name                  
apple        123   4.0
melon        456   7.0
banana        12  20.0
orange        55   3.0
mango         66   0.0

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-01-07
    • 1970-01-01
    • 2012-04-03
    • 1970-01-01
    • 2016-07-04
    • 1970-01-01
    • 2016-06-12
    • 1970-01-01
    相关资源
    最近更新 更多