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

如何用Pandas从源DataFrame生成最小值及对应列名的新列

如何基于源DataFrame添加每行取余后的最小值及对应列名列?

首先明确需求:基于原始的dfrtn DataFrame,添加Minimum(每行元素对7取余后的最小值)和MinCol(该最小值对应的列名)两列,得到指定结果。

解决方案代码

先看完整实现代码(包含构造示例DataFrame的部分,方便直接测试):

import pandas as pd

# 构造你提供的源DataFrame dfrtn
data = {
    'A': [33, 39, 45, 51, 57],
    'B': [34, 40, 46, 52, 58],
    'C': [35, 41, 47, 53, 59],
    'D': [36, 42, 48, 54, 60],
    'E': [37, 43, 49, 55, 61],
    'F': [38, 44, 50, 56, 62]
}
dfrtn = pd.DataFrame(data)

# 核心操作:添加目标列
dfrtn['Minimum'] = (dfrtn % 7).min(axis=1)
dfrtn['MinCol'] = (dfrtn % 7).idxmin(axis=1)

# 若仅需展示新增的两列,可提取出来
target_result = dfrtn[['Minimum', 'MinCol']]
print(target_result)

代码逻辑拆分

  • (dfrtn % 7):对原DataFrame的每一个元素执行取余7操作,生成一个和dfrtn结构一致的临时DataFrame(即你提到的dfrtn2)。
  • .min(axis=1):指定axis=1表示按行计算最小值,将每行取余后的最小值赋值给新列Minimum。
  • .idxmin(axis=1):同样按行查找,返回每行取余后最小值对应的列名,赋值给新列MinCol。

运行结果

执行代码后,target_result的输出与预期完全一致:

Minimum MinCol
0        0      C
1        0      D
2        0      E
3        0      F
4        1      A

内容的提问来源于stack exchange,提问作者B.A.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 07:02:01