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

如何在Pandas DataFrame中忽略列无效值并填充默认值

解决Pandas转换列值为整数列表时的异常处理问题

你的原始DataFrame定义如下:

import pandas as pd

ds = {'col1' : ['1489900119000', '้้คค,1']}
df = pd.DataFrame(data=ds)

要实现**有效值转整数列表、无效值填充默认值[9,9]**的需求,可以通过以下几种方式解决:

方法1:自定义函数 + apply(推荐)

通过自定义函数捕获转换时的异常,逻辑清晰易维护:

def str_to_int_list(s):
    try:
        # 将字符串每个字符转为整数,组成列表
        return list(map(int, str(s)))
    except ValueError:
        # 转换失败时返回默认值
        return [9, 9]

# 应用函数到col1列生成col2
df['col2'] = df['col1'].apply(str_to_int_list)

方法2:带条件判断的列表推导式

如果能明确判断有效值的特征(比如所有字符都是数字),可以直接用列表推导式:

df['col2'] = [
    list(map(int, str(x))) if all(c.isdigit() for c in str(x)) else [9,9]
    for x in df.col1
]

最终结果

执行后得到的DataFrame如下:

col1                                               col2
0  1489900119000  [1, 4, 8, 9, 9, 0, 0, 1, 1, 9, 0, 0, 0]
1         ้้คค,1                                          [9, 9]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 16:42:13