如何基于ID将Pandas原始DataFrame拆分为两个子DataFrame?
拆分Pandas DataFrame的实现方法
方法一:布尔索引直接匹配
适合id数量较少的场景,通过逻辑或运算符组合条件:
import pandas as pd # 构造示例DataFrame(替换为你的实际数据即可) data = { 'id': [1,2,3,4,5], 'cycle': [10,20,30,40,50], 'Salary': [5000,6000,7000,8000,9000], 'Children': [0,1,2,1,0], 'Days': [22,21,23,20,22] } df = pd.DataFrame(data) # 拆分出id为1、2、3的df1 df1 = df[(df['id'] == 1) | (df['id'] == 2) | (df['id'] == 3)] # 拆分出id为4、5的df2 df2 = df[(df['id'] == 4) | (df['id'] == 5)]
方法二:使用isin()方法(更简洁)
当需要匹配的id数量较多时,用列表配合isin()更易维护:
# 定义目标id列表 target_ids_df1 = [1,2,3] target_ids_df2 = [4,5] # 拆分数据 df1 = df[df['id'].isin(target_ids_df1)] df2 = df[df['id'].isin(target_ids_df2)]
可选:重置子DataFrame的索引
拆分后的子DataFrame会保留原数据的索引,若需要重置为连续索引,可执行:
df1 = df1.reset_index(drop=True) df2 = df2.reset_index(drop=True)
内容的提问来源于stack exchange,提问作者NN_Developer
相关产品推荐
相关产品推荐

