python - 使用 python pandas 中的函数将数据附加到现有数据帧
问题描述
我有一个数据框:
id user_id name city email
1 1 John Mexico City john@example.com
2 2 Conor NY conor@example.com
3 3 Albert Florida city albert@example.com
4 4 James Florida city james@example.com
我还有一个 mysql 表user_data
:
id email1 email2 status
1 john@example.com active
2 conor@example.com active
3 albert@example.com delete
4 james@example.com active
我必须status
根据 sql 查询将列的数据附加到数据框中
def fetchStatus(con, user_id, email):
sql = """select status from user_data where id = %s and ( email1 = '%s' or email2 = '%s' )"""%(user_id, email, email)
status_data = pd.read_sql(sql, con)
status_data
包含特定的状态,user_id
并且email
应该将状态附加到数据框
期望的结果
id user_id name city email status
1 1 John Mexico City john@example.com active
2 2 Conor NY conor@example.com active
3 3 Albert Florida city albert@example.com delete
4 4 James Florida city james@example.com active
我之前使用的方法:
我已经使用 pandas 将表提取为数据框,并使用连接两个数据框user_id
但是现在我想使用函数方式。我怎样才能做到这一点?
解决方案
看起来join
或merge
原生的熊猫函数可以解决问题。
我认为您只需要编辑 SQL 查询,以便获得 Id 和状态。
def fetchStatus(con, user_id, email):
sql = """select id, status from user_data where id = %s and ( email1 = '%s' or email2 = '%s' )"""%(user_id, email, email)
status_data = pd.read_sql(sql, con)
df_merged = sample_df.set_index('user_id').join(status_data.set_index('id'))
推荐阅读
- php - 基于 CodeIgniter env 的 MY_ 类扩展
- c# - 使用带有 C# 的 MS Test 无法执行超过 30 分钟的 selenium 测试脚本
- java - Spring 通过限定符注入 null 而不是 object
- php - Symfony 运行提示 kernel.secret 参数未找到
- django - 使用 Django 在订单历史记录页面的 ListView 页面中包含 DetailView 上下文
- amazon-web-services - 在由 Kops on AWS 创建的 K8s 上的 Docker 容器中禁用 IPv6
- qt - 如何从给定的 QDate 获得第一个星期五?
- python - 无法访问 annotate() 中的 to_attr 属性
- javascript - 如何使用 WP Store Locator 在前端显示自定义元数据?
- java - LibGDX从核心模块(MyGdxGame)中的android模块(AndroidLauncher)获取变量?