如何从data frame中提取两个及以上列值匹配的行并保存至新data frame
多列匹配条目提取方案
实现逻辑
要提取指定多个列值完全一致的对应行,只需对需要匹配的列做分组,筛选出组内行数≥2的分组即可得到所有符合条件的条目。
代码实现(Python Pandas)
假设你的源数据存储在名为df的Pandas DataFrame中,需要匹配的列为Colour、Size,示例代码如下:
import pandas as pd # 1. 指定参与匹配的列 match_columns = ["Colour", "Size"] # 2. 分组筛选得到符合条件的新DataFrame matched_df = df.groupby(match_columns).filter(lambda group: len(group) >= 2).reset_index(drop=True) # 3. 查看结果 print(matched_df) # 可选:将结果保存为CSV文件 # matched_df.to_csv("matched_result.csv", index=False)
效果示例
输入示例
| ID | Colour | Size |
|---|---|---|
| 1 | 红 | M |
| 2 | 红 | M |
| 3 | 蓝 | L |
| 4 | 绿 | S |
| 5 | 蓝 | L |
| 6 | 黄 | XL |
输出示例
| ID | Colour | Size |
|---|---|---|
| 1 | 红 | M |
| 2 | 红 | M |
| 3 | 蓝 | L |
| 5 | 蓝 | L |
内容的提问来源于stack exchange,提问作者Charlie Liu
相关产品推荐
相关产品推荐

