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

如何将含210万条记录的DataFrame按in字段拆分两个子DataFrame?

DataFrame拆分实现方案

核心思路

先统计每个in值对应的唯一o_id数量,再根据这个数量将原DataFrame拆分成两部分:

  • 第一部分:包含所有in值仅对应1个唯一o_id的记录
  • 第二部分:包含所有in值对应多个不同o_id的记录

具体代码实现(基于Pandas)

import pandas as pd

# 替换为你的210万条记录的原始DataFrame
df = pd.DataFrame({
    'p_id': [1, 1, 1, 1],
    'o_id': [1, 1, 2, 1],
    'in': [1, 2, 2, 3]
})

# 计算每个in值对应的唯一o_id数量
in_o_unique_count = df.groupby('in')['o_id'].nunique()

# 拆分出第一个DataFrame:in仅对应唯一o_id的记录
df_single_o = df[df['in'].isin(in_o_unique_count[in_o_unique_count == 1].index)]

# 拆分出第二个DataFrame:in对应多个o_id的记录
df_multi_o = df[df['in'].isin(in_o_unique_count[in_o_unique_count > 1].index)]

# 查看结果
print("第一个DataFrame:")
print(df_single_o)
print("\n第二个DataFrame:")
print(df_multi_o)

关键说明

  • 用groupby结合nunique的方式统计唯一值数量,是处理210万条大数据量的高效方案,避免逐行循环的低效率问题
  • isin()方法快速筛选符合条件的记录,保证拆分操作的性能

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 02:32:45