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”之类的参数之类的选项不起作用。
我怎样才能解决这个问题?
默认情况下,pandas 导出到 Stata 版本 10(代码 114),该版本不支持 unicode。
\n只需指定更高版本的 Stata(118+)即可导出 unicode 列而不会出现错误:
\ndf = pd.DataFrame({'animal': ['\xe2\x82\xacfalcon', '\xe2\x82\xacparrot', '\xe2\x82\xacfalcon','\xe2\x82\xacparrot']})\ndf.to_stata('animals.dta', version=118) \nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
2810 次 |
| 最近记录: |