如何为DataFrame新增展示每行数值min-max范围的Range列
实现方法
你可以直接通过pandas自动筛选数值列后按行计算极值拼接,不需要手动指定200列的列名,代码如下:
import pandas as pd # 假设你的原DataFrame变量名为df # 第一步:筛选所有数值类型的列,自动排除Country这类非数值列 numeric_cols = df.select_dtypes(include="number").columns # 第二步:按行计算最小值、最大值,拼接为范围字符串 df["Range"] = df[numeric_cols].apply(lambda row: f"{row.min()}-{row.max()}", axis=1)
如果你的DataFrame里所有非数值列都固定在最左侧,也可以用列位置切片的方式选择计算范围,示例:
# 从第2列(索引为1)到最后一列都参与计算 df["Range"] = df.iloc[:, 1:].apply(lambda row: f"{row.min()}-{row.max()}", axis=1)
两种方法都可以适配你200列的场景,不需要手动录入列名。
内容的提问来源于stack exchange,提问作者Niam45
相关产品推荐
相关产品推荐

