由于unicode问题,Python无法导出到Stata?

j_d*_*j_d 4 python unicode stata pandas

我正在尝试将 Python 中的数据帧导出为 Stata dta。这是我正在使用的代码的精简版本:

import pandas as pd

df_master = pd.read_stata(old_dta_location)

# Do some data manipulation.

df_master.to_stata(new_dta_location, {"final_date": "td"}, write_index = False)
Run Code Online (Sandbox Code Playgroud)

当我这样做时,我收到以下错误:

UnicodeEncodeError: 'latin-1' codec can't encode character '\u20ac' in position 11: ordinal not in range(256)
Run Code Online (Sandbox Code Playgroud)

我知道还有其他关于 unicode 错误的问题,但由于它们与 Stata 无关,因此诸如放置“encoding =”utf8”之类的参数之类的选项不起作用。

我怎样才能解决这个问题?

Dan*_*rno 8

默认情况下,pandas 导出到 Stata 版本 10(代码 114),该版本不支持 unicode。

\n

只需指定更高版本的 Stata(118+)即可导出 unicode 列而不会出现错误:

\n
df = pd.DataFrame({'animal': ['\xe2\x82\xacfalcon', '\xe2\x82\xacparrot', '\xe2\x82\xacfalcon','\xe2\x82\xacparrot']})\ndf.to_stata('animals.dta', version=118)  \n
Run Code Online (Sandbox Code Playgroud)\n