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

Pandas如何将字符串列表转为整数列表并处理空列表?

解决DataFrame中字符串列表转整数列表的问题

问题分析

你遇到的ValueError是因为数据中部分列表包含空字符串(比如['', '85']这类情况),直接转int会失败;同时原代码的列表推导式只处理非空列表,会导致转换后的结果长度和原DataFrame不匹配,也会引发问题。

解决方案

用apply结合自定义函数,逐个处理每个列表:

  1. 定义函数过滤空字符串并转换有效元素为整数
  2. 对clickHistory列应用该函数

完整代码示例

import pandas as pd

# 构造你的DataFrame
data = {
    'customerID': ['A', 'B', 'C'],
    'clickHistory': [[], ['85','14','23'], []]
}
df = pd.DataFrame(data)

# 定义转换函数:过滤空字符串,将有效字符串转为整数
def str_list_to_int(lst):
    return [int(x) for x in lst if x.strip()]  # x.strip()排除全空格的空字符串

# 应用转换
df['clickHistory'] = df['clickHistory'].apply(str_list_to_int)

print(df)

输出结果

customerID clickHistory
0          A            []
1          B  [85, 14, 23]
2          C            []

为什么这个方法可行

  • 空列表会直接返回空,无需额外判断
  • 自动过滤列表中的空字符串(包括仅含空格的字符串),避免转换报错
  • apply逐行处理,保证转换后的结果长度和原DataFrame完全一致,不会出现赋值不匹配的问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 14:45:01