Python中如何比较DataFrame同一列重复值并分析价格差异排序
处理重复房源ID的价格差异并排序
假设你已经通过pd.concat(g for _, g in df.groupby("id") if len(g) > 1)得到了包含重复ID的数据集,将其赋值给duplicate_ids_df,可以按以下步骤计算价格差异并排序:
步骤1:计算每个重复ID的价格差异
通过分组计算同一ID下房价的最大值与最小值之差,得到该房源的价格波动:
# 计算每个ID的价格差并转换为DataFrame price_diff = duplicate_ids_df.groupby('id')['price'].agg(lambda x: x.max() - x.min()).reset_index() # 重命名列以便更清晰 price_diff.columns = ['id', 'price_difference']
步骤2:按价格差异从高到低排序
使用sort_values方法对结果进行降序排序:
# 按价格差异降序排列 sorted_price_diff = price_diff.sort_values(by='price_difference', ascending=False)
可选:查看每个重复ID的原始价格记录
如果需要核对每个ID对应的具体价格数据,可以执行:
# 按ID和价格排序,查看重复ID的所有价格条目 duplicate_prices = duplicate_ids_df[['id', 'price']].sort_values(by=['id', 'price'])
内容的提问来源于stack exchange,提问作者Ismael Pauchner
相关产品推荐
相关产品推荐

