pandas 使用df A第一列的数据,查询df B中满足条件的,并将A的第二列的值改为B第二列的值
时间: 2024-11-09 18:23:43 浏览: 16
在Pandas中,你可以通过DataFrame的merge或join功能结合条件筛选来完成这样的操作。假设`df A`的第一列为键(key),`df B`也有一列用于匹配,可以按照以下步骤进行:
```python
import pandas as pd
# 假设df A 和 df B 的结构如下
# df A:
# col1 col2
# 0 a x
# 1 b y
# 2 c z
# df B:
# col1 colB
# 0 a 10
# 1 d 20
# 2 b 30
# 使用 merge 或 join (这里以 merge 为例)
# 指定 on='col1' 来基于第一列匹配,how='left' 保留所有 df A 的行并填充缺失值
merged_df = pd.merge(df_A, df_B, on='col1', how='left')
# 现在 merged_df 中如果 df A 的 col1 存在于 df B 中,那么 col2 就会被 colB 的值替换
# 如果不存在,col2 保持不变。例如:
# col1 col2 colB
# 0 a 10 10
# 1 b 30 30
# 2 c NaN NaN
# 对于 col2 的赋值,可以直接对 merged_df['col2'] 进行赋值操作:
merged_df['col2'] = merged_df['colB']
# 删除不需要的列,如 df B 中已经存在的键列 'col1'
merged_df.drop('col1', axis=1, inplace=True)
阅读全文