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 字符时更加轻松。
我正在使用 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 字符时更加轻松。