You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于cusip_id合并千万级DataFrame:从其他DataFrame添加列的需求

合并两个DataFrame的解决方案

针对你这个需求,用pandas的合并功能就能轻松搞定,而且考虑到你有2000万行的大数据量,咱们得选对方式保证效率。

基础合并方法

最直接的就是用pd.merge(),指定连接键和连接方式就行:

import pandas as pd

# 假设你已经加载好了Output_I和Output_II两个DataFrame
Output_III = pd.merge(Output_I, Output_II, on='cusip_id', how='left')
  • on='cusip_id':明确以cusip_id作为匹配的键
  • how='left':采用左连接,这样能保留Output_I里的所有行——哪怕某个cusip_id在Output_II里找不到对应数据,也会保留该行,ISIN字段会填充为NaN。如果能确定Output_I里的所有cusip_id都在Output_II里存在,换成how='inner'会更高效一点。

针对大数据量的优化建议

因为你的Output_I有2000万行,小细节能提升不少性能:

  • 统一字段类型:先确保两个DataFrame的cusip_id都是字符串类型,避免类型不匹配导致的连接慢或者失败:
    Output_I['cusip_id'] = Output_I['cusip_id'].astype(str)
    Output_II['cusip_id'] = Output_II['cusip_id'].astype(str)
    
  • 利用索引加速:Output_II是小表,给它的cusip_id设置索引后,用join方法连接会比普通merge更快:
    # 给小表设置索引
    Output_II.set_index('cusip_id', inplace=True)
    # 通过join连接
    Output_III = Output_I.join(Output_II, on='cusip_id')
    

最终结果示例

合并后的Output_III结构会是这样:

cusip_idpriceISIN
uidiso100.5xs987346325
undnns90.2ch438763282
xsodeid45.5xs937349494
uidiso99.5xs987346325
xsodeid45.1xs937349494
undnns90.0ch438763282

内容的提问来源于stack exchange,提问作者Brian

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 09:48:45