如何在Pandas中选取carrier列后各列的每行最大值并插入指定位置
解决方案
步骤说明
- 定位
carrier列的位置,明确需要计算最大值的列范围(carrier之后的所有列) - 仅对目标列范围计算每行最大值
- 将计算结果插入到
carrier列的后方
完整代码
# 获取carrier列的索引位置 carrier_col_idx = df.columns.get_loc('carrier') # 选取carrier列之后的所有列 target_cols = df.columns[carrier_col_idx + 1:] # 计算每行在目标列中的最大值 mx_values = df[target_cols].max(axis=1) # 将Mx列插入到carrier列的下一个位置 df.insert(loc=carrier_col_idx + 1, column='Mx', value=mx_values)
代码解释
df.columns.get_loc('carrier'):精准定位carrier列的索引,确保后续能准确筛选目标列df.columns[carrier_col_idx + 1:]:通过切片获取carrier之后的所有列,后续新增日期列也能自动适配df[target_cols].max(axis=1):仅对指定列计算每行最大值,避免包含Speed、Band_In等无关数值列df.insert():指定插入位置,保证Mx列刚好在carrier列之后,完全匹配需求结构
验证结果
运行代码后得到的DataFrame如下:
Node Interface Speed Band_In carrier Mx 1-Jun 10-Jun Server1 wan1 100 80 ATT 80 80 30 Server1 wan2 100 60 Sprint 60 60 30 Server1 wan3 100 96 Verizon 96 96 15
内容的提问来源于stack exchange,提问作者user1471980
相关产品推荐
相关产品推荐

