python匹配两列数据加标签_基于标签在同一数据帧中查找值并添加到新列(Vlookup)...
时间: 2024-02-03 09:11:15 浏览: 21
你可以使用`pandas`库来实现这个功能。
假设你有一个数据帧`df`,其中包括两列数据`col1`和`col2`,你想要在`col1`中查找每个值在另一个数据帧`lookup_df`的`lookup_col`列中是否存在,如果存在,则在`df`中添加一个新列`label`,并将`lookup_df`中对应行的`lookup_value`添加到`label`中。以下是示例代码:
```python
import pandas as pd
# 创建示例数据帧
df = pd.DataFrame({'col1': ['A', 'B', 'C', 'D'], 'col2': [1, 2, 3, 4]})
lookup_df = pd.DataFrame({'lookup_col': ['A', 'C'], 'lookup_value': ['label1', 'label2']})
# 使用merge函数进行匹配
merged_df = pd.merge(df, lookup_df, left_on='col1', right_on='lookup_col', how='left')
# 添加标签列
merged_df['label'] = merged_df['lookup_value'].fillna('')
# 删除无用的列
merged_df = merged_df.drop(['lookup_col', 'lookup_value'], axis=1)
```
在代码中,首先创建了两个示例数据帧`df`和`lookup_df`。然后使用`merge`函数将它们合并在一起,使用`left_on`和`right_on`参数指定需要匹配的列,使用`how='left'`将保留`df`中所有行。合并后的数据帧中包括了`lookup_value`列,其中对应`lookup_col`列中的值被匹配到。最后,使用`fillna`函数将缺失值替换为`''`,并删除无用的列,得到最终的数据帧`merged_df`。