Pandas-基于重复行更新特定列中的值

3
我有一个公寓楼销售的Pandas数据库,其中一列是价格,另一列是销售日期。其中一些销售是多个物业的组合交易,但每个物业列出的价格反映了多个物业的总销售价格。这些捆绑交易可以通过销售发生的日期进一步确定。
例如:
地址 价格 销售日期 税收评估价值
301-303 EAST 4TH STREET 3672530 11/24/2020 3420000 9 AVENUE B 1250000 06/16/2020 650000 11 AVENUE B 1250000 06/16/2020 800000 231-233 EAST 4TH STREET 2500000 06/16/2020 5111000
到目前为止,我已经使用以下方法在数据框中标识出所有重复项:
df[df.duplicated(['Price', 'Date Sold'], keep = False)]

此查询返回:

地址 价格 销售日期 税评估价值
9 AVENUE B 1250000 06/16/2020 650000
11 AVENUE B 1250000 06/16/2020 800000

数据库中有很多使用不同建筑数量的捆绑交易。我想通过使用该捆绑包总税评估价值的比例乘以价格值来估算和更新捆绑包中每栋建筑的价格。

例如 (650000/(650000+800000))*1250000 = 560344.8

最终将得到:

地址 价格 销售日期 税评估价值
9 AVENUE B 560344.8 06/16/2020 650000
11 AVENUE B 689655.2 06/16/2020 800000

我找到了一些以前关于如何替换整行或单列值的问题,但最终在确定每个捆绑包和计算比例方面感到很困惑。

1个回答

1

尝试:

df['Price'] *= (df['Tax Assessed Value'] / 
                df.groupby(['Price', 'Date Sold'])['Tax Assessed Value'].transform('sum') 
               )

但我认为您需要准确地确定您所说的重复是什么意思。


1
这正好按照预期工作,非常感谢您的帮助!显然,我还有很多关于处理数据框的知识需要学习。 - Jrob1765

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接