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

如何将一个DataFrame的映射值关联至另一个?附具体示例需求

处理你的DataFrame需求

嘿,看起来你没把目标DataFrame的具体结构展示出来哦!不过我可以基于你给出的df1,分享几个常见的处理场景和实现代码,你可以对照你的目标结果来调整~

先看一下你原始的DataFrame:

import pandas as pd

df1 = pd.DataFrame(
    data = {
        'x_axis': ['p1','p2','p2','p4','p4'], 
        'y_axis': [1,2,3,1,5], 
        'error_type_A': ['error 2', 'error 1', 'error 1', 'error 2', 'error 1'], 
        'error_type_B': ['error 3','error 4','','error 3','error 4']
    }
)

场景1:按x_axis分组,聚合y_axis和错误类型

如果你的目标是按x_axis分组,计算y_axis的均值/总和,同时汇总对应的错误类型,可以这样做:

# 自定义函数:拼接非空的错误文本
def concat_errors(series):
    return ', '.join([s for s in series if s])

# 分组聚合
result = df1.groupby('x_axis').agg(
    y_mean=('y_axis', 'mean'),
    y_sum=('y_axis', 'sum'),
    errors_A=('error_type_A', concat_errors),
    errors_B=('error_type_B', concat_errors)
).reset_index()

得到的结果示例:

x_axisy_meany_sumerrors_Aerrors_B
p11.01error 2error 3
p22.55error 1, error 1error 4
p43.06error 2, error 1error 3, error 4

场景2:合并error_type_A和error_type_B为一列错误信息

如果你的目标是把两个错误列合并成一个,去除空值,可以这样实现:

# 逐行合并非空错误
df1['combined_errors'] = df1.apply(
    lambda row: ', '.join([s for s in [row['error_type_A'], row['error_type_B']] if s]),
    axis=1
)
# 可选:保留需要的列
result = df1[['x_axis', 'y_axis', 'combined_errors']]

结果示例:

x_axisy_axiscombined_errors
p11error 2, error 3
p22error 1, error 4
p23error 1
p41error 2, error 3
p45error 1, error 4

场景3:转成错误类型的长格式统计

如果想要统计每种错误对应的x_axis和y_axis分布,可以把宽表转成长表:

# 转长格式并过滤空错误
melted = df1.melt(
    id_vars=['x_axis', 'y_axis'],
    value_vars=['error_type_A', 'error_type_B'],
    var_name='error_category',
    value_name='error'
).query("error != ''")

# 按错误类别和错误内容排序
result = melted.sort_values(['error_category', 'error'])

结果示例:

x_axisy_axiserror_categoryerror
p11error_type_Aerror 2
p41error_type_Aerror 2
p22error_type_Aerror 1
p23error_type_Aerror 1
p45error_type_Aerror 1
p11error_type_Berror 3
p41error_type_Berror 3
p22error_type_Berror 4
p45error_type_Berror 4

如果你能补充一下目标DataFrame的具体样子,我可以给你更精准的实现代码哦!


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.09 16:52:56