name={'0':'harry','1':'petter'},dataframe中的A列是‘0’和‘1’,去匹配name,如果name中存在则匹配,不存在则跳过,问python如何实现
时间: 2024-10-24 07:10:39 浏览: 27
在Python中,你可以使用pandas库配合字典和条件判断来实现这个需求。假设你有一个DataFrame `df`,其中A列的数据是字符串'0'或'1',你可以这样做:
```python
import pandas as pd
# 假设你的 DataFrame 真实数据类似这样
data = {'A': ['0', '1', '5', '2', '0']}
df = pd.DataFrame(data)
# 定义字典
name_dict = {'0': 'harry', '1': 'petter'}
# 创建一个新的列,用于存储匹配的结果
df['matched_name'] = np.nan # 初始化新列
# 使用map函数和字典进行匹配
df['matched_name'] = df['A'].map(name_dict.get)
# 删除无法匹配到的值(这里会自动忽略'5'和'2')
df = df[df['matched_name'].notna()]
print(df)
```
这段代码首先创建了一个新的列'matched_name',然后使用`df['A'].map()`将A列中的每个值映射到`name_dict`中对应的名称,如果字典中没有该键,则返回`None`。最后,筛选出'matched_name'非空的行。
阅读全文