pandas dataframe用两列条件合并
时间: 2024-09-25 22:13:33 浏览: 71
在Pandas DataFrame中,如果想要基于两个或多列的特定条件进行合并,通常可以使用`merge()`、`join()` 或者 `concat()` 函数,以及布尔索引来筛选数据。这里以`merge()`为例,它可以根据指定的列进行连接(inner join默认),结合两个DataFrame中的共同列。
假设我们有两个DataFrame,一个是`df1`,有`key1` 和 `value1` 列,另一个是 `df2`,有 `key2` 和 `value2` 列,我们想根据 `key1` 和 `key2` 的匹配进行合并,并且只有当 `value1` 和 `value2` 都满足某种条件(比如大于某个值)时才保留行:
```python
# 假设 value1 和 value2 需要同时大于某个阈值
threshold = 10
# 使用 merge() 函数
merged_df = pd.merge(df1[df1['value1'] > threshold],
df2[df2['value2'] > threshold],
on=['key1', 'key2'],
how='inner')
# 'how=' inner 表示内连接,仅保留两个DataFrame中都存在的行
```
在这个例子中,`on=['key1', 'key2']` 指定了连接的键,`how='inner'` 表示只保留两个DataFrame中 `key1` 和 `key2` 相同,并且 `value1` 和 `value2` 都大于 `threshold` 的行。
阅读全文