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

如何在Pandas中将字符串格式列表转换为整数列表

问题描述

我有一份字典格式的数据(同时也是Pandas DataFrame中的一列),字典的值是字符串形式的数字列表,示例数据如下:

{569328: '[  596005  4321416  5802640  6031690  6043910  8600475  8642629  9203255  9345445 10177065 10455451 13428248 22139349 22591458 24627241 24750476 26261826 26405611 27079105 27096884]',
 574660: '[ 5956195 11260528 22181831 22437920 22642946 23278096 23407037 23458128 24244657 24355363 25014714 25115774 25156886 27047688 27089078 27398716]',
 1187498: '[ 5855196  7755392 11183886 22894980 24648618 27185399]',
 1226468: '[ 3573464  6279285  6294985  6542463  6981930  7427770 10325811 14970234 16878329 17935009 21811002 22329817 23543436 23907898 24456108 25283772]',
 1236571: '[ 2777078  2826073  5944733 10484188 11052747 14682645 15688752 22333410 22614097 22646501 22783765 22978728 23231683 24259740 24605606 24839432 25492752 27009992 27044704]'}

需要将这些字符串值转换为合法的整数列表,预期结果如下:

{569328: [596005, 4321416,5802640,6031690,6043910,8600475,8642629,9203255,9345445, 10177065,10455451,13428248,22139349,22591458,24627241,24750476,26261826,26405611, 27079105,27096884],
 574660: [5956195,11260528,22181831,22437920,22642946,23278096,23407037,23458128, 24244657,24355363,25014714,25115774,25156886,27047688,27089078,27398716],
 ...}
解决方案

1. 直接处理字典

遍历字典的键值对,对每个字符串值做清洗和类型转换:

original_dict = {569328: '[  596005  4321416  5802640  6031690  6043910  8600475  8642629  9203255  9345445 10177065 10455451 13428248 22139349 22591458 24627241 24750476 26261826 26405611 27079105 27096884]',
 574660: '[ 5956195 11260528 22181831 22437920 22642946 23278096 23407037 23458128 24244657 24355363 25014714 25115774 25156886 27047688 27089078 27398716]',
 1187498: '[ 5855196  7755392 11183886 22894980 24648618 27185399]',
 1226468: '[ 3573464  6279285  6294985  6542463  6981930  7427770 10325811 14970234 16878329 17935009 21811002 22329817 23543436 23907898 24456108 25283772]',
 1236571: '[ 2777078  2826073  5944733 10484188 11052747 14682645 15688752 22333410 22614097 22646501 22783765 22978728 23231683 24259740 24605606 24839432 25492752 27009992 27044704]'}

converted_dict = {}
for key, value in original_dict.items():
    # 去掉首尾方括号,按空格分割,过滤空字符串后转整数
    num_list = [int(num) for num in value.strip('[]').split() if num]
    converted_dict[key] = num_list

2. 处理Pandas DataFrame中的列

如果该数据是DataFrame的一列,用apply方法批量转换:

import pandas as pd

# 假设DataFrame名为df,目标列名为'target_column'
df['converted_column'] = df['target_column'].apply(lambda x: [int(num) for num in x.strip('[]').split() if num])

关键步骤说明

  • strip('[]'):移除字符串首尾的方括号
  • split():按任意数量空格分割字符串,自动处理多空格场景
  • if num:过滤分割后可能出现的空字符串
  • int(num):将分割后的字符串转换为整数

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 18:15:51