![](/img/trans.png)
[英]Filter all rows in a pandas DataFrame where a given value is between two column values
[英]Filter two dataframe and shows the unmatched value as pandas table with values
我有两个名为“顶级产品”的 pandas 表和另一个表“经销商”。 我想将经销商表与顶级产品表进行比较,并打印出 Output 表,如下表所示: Output 。 表 Output 包含表中经销商在“Avg_amt 列”中没有的所有产品。 我已经尝试过这段代码,但它不起作用。
cond = df_Dealer['product'].isin(Top_product['product']) df_dealer.drop(Top_product[cond].index, inplace = False)
邮政编码 | 产品 | 平均量 |
---|---|---|
200 | 一个 | 3200 |
200 | 乙 | 3070 |
200 | C | 190 |
201 | 一个 | 490 |
201 | D | 210 |
201 | 乙 | 4000 |
表:顶级产品
邮政编码 | 经销商 | 产品 |
---|---|---|
200 | X | 一个 |
201 | ķ | 乙 |
表:经销商
邮政编码 | 经销商 | 产品 | 平均量 |
---|---|---|---|
200 | X | 乙 | 3070 |
200 | X | C | 190 |
201 | ķ | 一个 | 490 |
201 | ķ | D | 210 |
201 | ķ | 乙 | 4000 |
表:Output
您可以从结果中合并“postocde”和 select 上的两个表,结果中“产品”列中值不同的所有行。 然后我们把output中不需要显示的那一列去掉:
result = Top_product.merge(df_Dealer, how='left',
on='postcode', suffixes('','_y'))
result.loc[result['product'] != result['product_y'], :]\
.drop('product_y', axis=1).reset_index(drop=True)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.