首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >odo在csv和mysql之间转换数据

odo在csv和mysql之间转换数据
EN

Stack Overflow用户
提问于 2016-07-08 20:03:48
回答 1查看 618关注 0票数 2

当使用python .csv's模块将其中一个pd.DataFrame转换为pd.DataFrame时,我将收到一个TypeError

代码语言:javascript
复制
    TypeError: Cannot cast array from dtype('float64') to dtype('int64') 
               according to the rule 'safe'

为其他csv's工作的代码

代码语言:javascript
复制
# csv table file name
csvNm = 'table.csv'

# convert mysql table to csv
odo_csv = odo(tstConn.connect_string + '::' + tbl , csvNm)

# convert csv to pandas 
odo_df = odo(odo_csv , pd.DataFrame)

到目前为止,我尝试过的是,但没有结果:

代码语言:javascript
复制
import pandas as pd
from odo import odo, resource, discover, convert

odo_csv=odo(tstConn.connect_string + '::' + tbl , csvNm)
csv=resource(csvNm)
ds=discover(csv)

# Convert csv to pandas
odo_df = odo(odo_csv , pd.DataFrame, dshape=ds) 

这是:

代码语言:javascript
复制
odo_df = odo(odo_csv , pd.DataFrame, casting='unsafe')

更新1看起来我忽略了这个错误中最明显的提示

代码语言:javascript
复制
pandas\parser.pyx in pandas.parser.TextReader._convert_tokens (pandas\parser.c:11816)()

导致在Windows SO中出现编码问题。但这两件事都没有:

代码语言:javascript
复制
odo_df = odo(odo_csv , pd.DataFrame, encoding=odo_csv.encoding)

或者这件作品

代码语言:javascript
复制
odo_df = odo(odo_csv , pd.DataFrame, encoding='cp1252') 

这种不雅的方式(对于我的用例)取自pandas-reading-csv-files (与上面的链接相同)。

代码语言:javascript
复制
# Python3
with open('/tmp/test.csv', 'r', encoding='cp1252') as f:
    df = pd.read_csv(f)
    print(df)

不知道下一步该尝试什么,任何帮助都将不胜感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-07-09 06:19:35

有效的解决办法是:

代码语言:javascript
复制
import pandas as pd
from odo import odo, resource, discover, convert

# convert mysql to csv
odo_csv=odo(raw_dbConn.connect_string + '::' + tblName , csvNm, header=True)

# Get odo resource aka sqlalchemy.Table instance
resc=resource(raw_dbConn.connect_string + '::' + tblName )

# Discover the resc
ds=discover(resc)

# Convert csv to dataframe    
odo_df = odo(odo_csv , pd.DataFrame, dshape=ds ,encoding=odo_csv.encoding)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38274569

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档