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

如何用Python Pandas将DataFrame中Unicode转换为ASCII并自定义映射

完整实现字符转换与DataFrame列生成方案

没问题,我来帮你把convertASCII函数补全,并且告诉你怎么用它处理DataFrame生成新的ASCII文本列。

首先,先把你的函数补全,核心逻辑是遍历每个字符,匹配到映射字典里的字符就替换,否则保留原字符:

characterMap = {u'\u00E7': 'c', u'\u00C7' : 'C', u'\u011F' : 'g', u'\u011E' : 'G', u'\u00F6': 'o', u'\u00D6' : 'O', u'\u015F' : 's', u'\u015E' : 'S', u'\u00FC' : 'u', u'\u00DC' : 'U' , u'\u0131' : 'i', u'\u0049' : 'I', u'\u0259' : 'e', u'\u018F' : 'E'}

def convertASCII(word):
    asciiWord = ""
    # 统一转成字符串并去除末尾空白,避免非字符串类型报错
    word = str(word).rstrip()
    for c in word:
        # 检查字符是否在映射字典中,是则替换,否则保留原字符
        if c in characterMap:
            asciiWord += characterMap[c]
        else:
            asciiWord += c
    return asciiWord

接下来,用这个函数处理DataFrame的列非常简单,直接用apply方法就能批量处理每一行的文本,生成新列:

import pandas as pd

# 假设你的DataFrame是这样的(可以替换成你自己的DataFrame)
df = pd.DataFrame({
    'original_text': [
        'G\u00FCzel bir g\u00FCn', 
        'T\u00FCrk\u00E7e metin', 
        'I\u0131zmir \u015Fehir'
    ]
})

# 应用转换函数,生成新的ASCII列
df['ascii_text'] = df['original_text'].apply(convertASCII)

# 查看结果
print(df)

运行后你会得到转换后的结果:

original_text       ascii_text
0    Güzel bir gün    Guzel bir gun
1     Türkçe metin     Turkce metin
2    Izmir şehir     Izmir sehir

额外小技巧

如果你的需求是转换更多通用的Unicode字符,而不仅仅是字典里的这些,可以试试unidecode库(需要先安装:pip install unidecode),它能自动处理绝大多数Unicode到ASCII的转换:

from unidecode import unidecode

def convertASCII_unidecode(word):
    return unidecode(str(word).rstrip())

# 同样用apply处理列
df['ascii_text_unidecode'] = df['original_text'].apply(convertASCII_unidecode)

不过如果有特定的替换规则(比如你自定义的字符映射),还是用你自己的字典更能保证转换结果符合预期。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 06:33:27