我遇到了无法将结果表从mysql工作台导入pandasDataframe的问题。
我的第一次尝试是使用mysql.connector
import mysql.connector as sql
import pandas as pd
db_connection = mysql.connect(#All the info necessary)
df = pd.read_sql(#Query)
解决方案的问题是在我的查询中,我想过滤掉其中包含特定单词的行。因此,我在mysql workbench中的查询如下所示:
select text_column from table where date < '2000-01-01' and date > '1999-12-31' and not( text_column like % cat % or text_column like % dog % .. and so on and so forth...) order by rand() limit 5
据我所知,你不能用Pandas做那种查询。我看了这个问题得到了答案:使用like inside pandas.query()
我有太多的数据,我不能只是拉下来的结果表,然后得到适当的行。
下一步是从mysql工作台导出结果表,然后使用pandas导入它。
我首先尝试使用.xls文件扩展名导出它。我遇到的问题是,它没有正确编码字符串,我会丢失信息。因为我有一个mac,所以我无法使用utf-8编码导入这些数据。欲知详情,请浏览本网站https://help.surveygizmo.com/help/encode-an-excel-file-to-utf-8-or-utf-16
从那里我试图导出它作为一个.csv,但我遇到了两个问题。一是因为这些是文本列,所以我遇到了一个问题,即不止一个字段应该只有一个字段。如果分隔符是逗号或分号,它仍然显示在文本中,并将分隔应视为一个单元格的文本。
即使不处理分隔符,数据也无法正确导出。这是因为有些文本有新行字符。导出时,将作为新行读入。
那么,如何正确地从mysql工作台导出只有一列文本的结果表呢?我宁愿不必手动操作文件。
暂无答案!
目前还没有任何答案,快来回答吧!