python - 根据比较条件将值插入数据帧
问题描述
我正在尝试根据与另一个数据帧的比较将值插入数据帧。这是一个例子:
>>> import pandas as pd
>>> import numpy as np
>>> print(df)
>>> df
name
0 richard Finn, Tim Maltby
1 Fernando Lebrija
>>> df2
Fullname id
0 richard Finn 500
1 Tim Maltby 699
2 Fernando Lebrija 300
所需的输出是:
>>> df
name id
0 richard Finn, Tim Maltby 500,699
1 Fernando Lebrija 300
我尝试使用:
df['id'] = np.where((df['name']==df2['Fullname']), df2['id]', df['id'])
但它给了我以下错误:`SyntaxError: invalid syntax
解决方案
另一种方式,使用列表理解
mapper = df2.set_index('Fullname')['id'].to_dict()
df['id'] = df['name'].apply(lambda x: ','.join([str(mapper.get(i.strip(), '')) for i in x.split(',')]))
name id
0 richard Finn, Tim Maltby 500,699
1 Fernando Lebrija 300
推荐阅读
- android - 随暗模式(如 MaterialTheme.colors)而变化的颜色对象,但使用我自己的应用程序的自定义颜色
- python - 如何使用 Python OpenCV VideoWriter,FOURCC 从 Ubuntu 写入 H264 .mp4 文件
- python - Flask SQLAlchemy Query 仅第一次工作
- java - 将图像添加到 JLabel 时出现 NullPointerException
- php - 将用户重定向到特定页面取决于输入表单上给出的文本
- python - 在 Blender 中安装 matplotlib 模块 python 时出错
- reactjs - 如果我在 Material UI Autocomplete 输入字段之外单击,则输入字段的所有文本都消失了
- openid-connect - 使用 Auth0 登录时获取用户名
- javascript - 如何索引具有相同类的 div 并在其中搜索?
- flutter - Flutter 文本字段在中心显示标签