这是我第一次在堆栈溢出中发布信息,所以请耐心等待。我整天都在搜寻互联网,但无法解决此问题。
基本上,我在列名称中有一个带有unicode字符的Pandas DataFrame,并且当我尝试使用to_sql将数据存储在数据库中时出现UnicodeEncodeError。我可以使用以下代码重现该错误:
import pandas as pd
from sqlalchemy import create_engine
df = pd.DataFrame([[1,2],[3,4]], columns = [u'\xe9',u'b'])
engine = create_engine('mysql://root:pass@localhost/testdb')
df.to_sql('data', engine, if_exists = 'replace', index = False)
追溯的最后一行如下所示:
C:\Users\isaac_000\Anaconda\lib\site-packages\pandas\io\sql.pyc in _get_column_names_and_types(self, dtype_mapper)
857 dtype_mapper(self.frame.iloc[:, i]),
858 False)
--> 859 for i in range(len(self.frame.columns))
860 ]
861
UnicodeEncodeError: 'ascii' codec can't encode character u'\xe9' in position 0: ordinal not in range(128)
希望您能提供任何帮助。让我知道您是否需要更多信息。谢谢!
这是当前to_sql
方法中的一个错误,我在这里提交了它:https : //github.com/pydata/pandas/issues/11431(可能会在版本0.17.1中修复)
作为一种解决方法,我建议
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句