pandas 使用 xlsxwriter 编码导致 'u' 数据框文本前缀

pandas with xlsxwriter encoding caused 'u' prefix to dataframe text

我正在使用 xlsxwriter 通过 pandas to_excel 函数将数据帧数据填充到 excel。但是,填充的数据在 excel.

中显示的文本前面有前缀“u

Excel 中的输出: [u'05-Sep-17'] [u'05-Sep-17']

我知道 'u' 指的是 unicode,有什么方法可以删除 'u' 前缀吗?

我尝试了以下但到目前为止没有任何成功。

1) 在调用 func to_excel()

之前通过正则表达式处理它
df.loc[:, 'delivery_dt'].replace({r'[^\x00-\x7F]+':''}, regex=True, inplace=True)

打印语句给出了我想要的结果但是当它到达to_excel()阶段时,unicode 'u'前缀出现在excel的最终输出中。

我试图重现你的问题,但没有成功。您介意分享有关您正在导入的数据源的更多详细信息吗?

如果您的字符串最初是 unicode 并且您使用 .to_excel('test.xls') 函数,它应该可以正常工作。如果要在 Excel 中强制使用特殊编码,请使用参数 .to_excel('test.xls', encoding='utf16').

因此,请确保您知道原始数据(例如您的 csv 文件或数据库)采用的编码方式。加载到 Python 时,请始终尝试尽快解码 unicode 数据。那么它应该开箱即用。

df['delivery_dt'] = df['delivery_dt'].apply(lambda x: unicode(x))

同样,一如既往,使用 Python 3 可以让您在处理非 ASCII 字符时更加轻松。