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

如何用Python从DataFrame列的逗号分隔值填充np.arange生成限制字典

实现DataFrame列拆分并生成指定字典的Python方案

问题背景

现有如下DataFrame:

import pandas as pd
import numpy as np

df = pd.DataFrame([["X","5,7,7,9"],["Y","20,30,32,48"]],columns=["type","range"])

数据形式如下:

type    range
X       5,7,7,9
Y       20,30,32,48

需求说明:
将range列的逗号分隔值拆分,前两个值作为对应type的min参数传入np.arange函数,后两个值作为max参数传入np.arange函数,生成以type名为标识的字典(如X_limits、Y_limits),最终预期效果如下:

X_limits['min'] = np.arange(5,7)
X_limits['max'] = np.arange(7,9)
Y_limits['min'] = np.arange(20,30)
Y_limits['max'] = np.arange(32,48)

实现代码

直接遍历DataFrame行,拆分字符串并生成对应字典即可,代码如下:

import pandas as pd
import numpy as np

# 初始化DataFrame
df = pd.DataFrame([["X","5,7,7,9"],["Y","20,30,32,48"]],columns=["type","range"])

# 方式1:用大字典统一存储所有结果
limits_dict = {}
# 方式2:动态生成单独的变量(如X_limits、Y_limits)

for _, row in df.iterrows():
    # 拆分range字符串为整数列表
    nums = list(map(int, row['range'].split(',')))
    # 生成当前type对应的limits字典
    current_limits = {
        'min': np.arange(nums[0], nums[1]),
        'max': np.arange(nums[2], nums[3])
    }
    # 存入大字典
    limits_dict[row['type']] = current_limits
    # 动态创建单独变量(可选)
    globals()[f"{row['type']}_limits"] = current_limits

# 验证结果示例
print(X_limits['min'])
print(Y_limits['max'])

代码说明

  • 遍历DataFrame每一行,将range列的字符串按逗号拆分后转换为整数列表;
  • 取列表前两个元素作为np.arange的参数生成min对应数组,后两个元素生成max对应数组;
  • 两种存储方式可选:用大字典limits_dict统一管理所有结果,或通过globals()动态创建如X_limits的独立变量;
  • np.arange(start, stop)会生成从start开始、到stop结束(不包含stop)的整数序列,完全匹配需求的参数传入逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 19:31:04