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

Pandas将含多数据类型的列转换为字符型的实现方法

解决混合类型列的转换问题

你的问题核心是列中存在NaN、整数、浮点数、字符串混合类型,直接用astype(int)会因为NaN无法转整数报错,同时还要保留特殊格式的字符串(比如"2+")。可以通过遍历每个元素做针对性处理来实现需求:

解决方案代码

import pandas as pd
import numpy as np

# 假设你的DataFrame是df
def process_col1(val):
    # 处理浮点数:非NaN转整数再转字符串,NaN保留
    if isinstance(val, float):
        if not pd.isna(val):
            return str(int(val))
        return val
    # 整数直接转字符串
    elif isinstance(val, int):
        return str(val)
    # 其他类型(如"2+"这类字符串)直接返回
    else:
        return val

# 应用处理函数到col1列
df['col1'] = df['col1'].apply(process_col1)

效果验证

运行后你的col1列会变成:

col1
1
1
NaN
0
0
2+

说明

  • 用apply逐个处理元素,避免批量转换时的类型冲突
  • 针对浮点数单独判断NaN,确保非NaN的浮点数能转成整数格式的字符串
  • 保留原始的NaN和特殊字符串格式,完全匹配你的预期输出

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 02:24:57