基于列值条件过滤行并合并DataFrame:为df1添加指定字段
解决DataFrame合并需求:仅保留stage为done的字节统计值
实现步骤
- 第一步:筛选
df2中stage状态为done的卷(vol)及其对应load批次stage_done = df2[(df2['counter_name'] == 'stage') & (df2['counter_value'] == 'done')][['vol', 'load']] - 第二步:提取
df2里bytes_read和bytes_written的记录,仅保留属于stage_done范围内的数据bytes_data = df2[df2['counter_name'].isin(['bytes_read', 'bytes_written'])] valid_bytes = bytes_data.merge(stage_done, on=['vol', 'load'], how='inner') - 第三步:将筛选后的字节数据转为宽表格式,适配
df1的结构valid_bytes_wide = valid_bytes.pivot(index='vol', columns='counter_name', values='counter_value').reset_index() - 第四步:将处理好的字节数据合并到
df1,无匹配记录的字段自动填充NaNdf1 = df1.merge(valid_bytes_wide, on='vol', how='left')
最终结果
执行后df1将变为:
vol comp sort bytes_read bytes_written 0 vol1 10 20 150.0 250.0 1 vol2 10 20 NaN NaN
内容的提问来源于stack exchange,提问作者user3555115
相关产品推荐
相关产品推荐

