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

Python pandas如何让Max Prod列仅显示单个最大值其余留空

问题说明

现有Python函数期望实现指定列仅展示单个特定值的效果,原代码如下:

def show_data():
    
    df = pd.DataFrame(myresult, columns=['Year', 'Production (Ton)'])
    df['Max Prod'] = df['Production (Ton)'].max())

    print(df)

运行代码后,输出的DataFrame中Max Prod列所有行均重复填充了Production (Ton)列的最大值366999,期望效果为Max Prod列仅显示1次最大值,其余行该列留空。

问题原因

直接给DataFrame新列赋值单个标量值时,pandas会自动将该值广播到列的所有行,因此会出现全列重复填充最大值的情况。另外原代码max()末尾多了一个多余的右括号,属于语法错误,运行前需要先删除。

修改方案
  • 先初始化Max Prod列为空值,可根据展示需求选择pandas缺失值pd.NA或者空字符串''
  • 计算产量列的最大值,将该值仅赋值给需要展示的目标行,通常放在最大值对应的产量行,也可根据需求固定放在第一行

修改后的可运行代码如下:

import pandas as pd

def show_data():
    df = pd.DataFrame(myresult, columns=['Year', 'Production (Ton)'])
    # 初始化新列为空值,要显示空白字符串就把pd.NA换成''
    df['Max Prod'] = pd.NA
    max_prod = df['Production (Ton)'].max()
    # 找到产量最大值对应的行索引,把最大值赋值到该行
    max_index = df['Production (Ton)'].idxmax()
    df.loc[max_index, 'Max Prod'] = max_prod

    print(df)

如果需要把最大值固定放在第一行,把对应赋值行替换为df.loc[0, 'Max Prod'] = max_prod即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.31 11:01:40