从MySQL工作台导入文本数据,结果得到的行数比我开始的多

2024-04-19 16:28:23 发布

您现在位置:Python中文网/ 问答频道 /正文

我遇到了无法将结果表从MySQL工作台导入pandas数据帧的问题。你知道吗

我的第一次尝试是使用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

据我所知,你不能用熊猫做那种查询。我看了这个问题得到答案:USING 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工作台导出只有一列文本的结果表呢?我宁愿不必手动操作文件。你知道吗


Tags: and数据text文本importpandassqlconnector