Python pandas 字符串处理来自 SQL 数据库的分类数据

标签 python database pandas categorical-data

我有一个大型数据集,需要读入 pandas 数据框。

它包含很多由一些相当长的字符串组成的分类数据。

尝试使用 pandas read_sql_query 方法时,我似乎无法指定应将哪些列视为分类数据。

这意味着我遇到了内存问题。

我有 R 的背景,我可以在其中指定诸如字符串作为因子之类的东西。这意味着您可以拥有内存占用较小的长字符串,因为它们在 R 中被索引为整数。我不能在 Python/Pandas 中做同样的事情吗?

我想在从数据库中读取数据时这样做!不之后。在数据框中将字符串转换为类别很容易,但这不是我要找的。

我知道我可以简单地对数据库中的数据进行编码,但我想避免这种情况。

最佳答案

我担心目前在数据库端编码(这可以使用 JOIN 和映射表来完成)是唯一可行的选择。

有一些类似的功能请求:

以 block 的形式读取数据并将每个 block 转换为 category dtype 可能会很棘手,因为可能需要从所有 block 中加入类别。

关于Python pandas 字符串处理来自 SQL 数据库的分类数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47430996/

相关文章:

Python:检测文件读取的当前行是否是最后一行

python - 在 Python 中连接列表周围的引号

python - 扩展一个以 C 对象作为参数的 Python 函数

php - 如何使用 symfony 更新 mysql 列

c# - 如何在不需要任何外部连接的 WPF 应用程序中创建内部数据库?

python - 写入 Excel (.xlsx) 时 Numpy.float64 发生变化

Python:根据其他数据帧的条件创建列

python - 如何在 Python 中通过 TCP/IP 与设备通信?

python - 如何在 python 中一次迭代 2 行,并在 python 中的第二行中追加一个包含值的列?

mysql - 定义添加到数据库中的数据的值(value)的最佳方法是什么?