将对象转换为字符串的最快方法 Python

Fastest way to convert object to string Python

我有一个从 Oracle 数据库中提取的约 250,000 行数据集。我关心的主要数据是作为 HUGECLOB 对象提取的文本字段。将我的数据存储到 CSV 中花费了相当多的时间,所以我决定通过以下方式切换到 Feather: 还有一些其他问题也使用了羽毛,但我找不到。我尝试了 to_hdf,但由于某种原因没有奏效。无论哪种方式,要使我的查询结果与 Feather 一起使用,必须将文本列转换为字符串。所以我有:

SQLquery = ('SELECT*')
datai = pd.read_sql(SQLquery, conn)
print("Query Passed, start date")
datai['REPORTDATE'] = pd.to_datetime(datai['REPORTDATE'], format='%m-%d-%Y')
print("Row done, string")
datai['LOWER(LD.LDTEXT)'] = datai['LOWER(LD.LDTEXT)'].apply(str)
print("Data Retrieved")
print("To feather start")
datai.to_feather(r'C:\Users\asdean\Documents\Nuclear Text\dataStore\rawData2.feather')
print("Done with feather")

注意:我放了一堆打印语句,因为我想弄清楚它挂在哪里。

文本列被识别为datai['LOWER(LD.LDTEXT)']。有些行包含相当多的文本(~几段)。字符串转换将永远进行(或者甚至可能不会完成)。当我从旧 CSV 读取它时(旧数据,不再使用,我们更新了查询等),我没有遇到这个问题。

我已经尝试了使用 astype(str)map(str)apply(str)values.astype(str) 执行此操作的所有常用方法,但没有成功将其加速到合理的 (少于 1 小时)的速度。有没有办法更快地进行对象到字符串的转换?我在这里缺少图书馆吗?有没有更快的方法通过 Oracle/HUGECLOB?我怎样才能加快速度?

我假设数据以 Oracle CLOB 数据类型存储在数据库中。数据有多大?如果字符串小于 1GB,请确保它们在下层 https://cx-oracle.readthedocs.io/en/latest/user_guide/lob_data.html#fetching-lobs-as-strings-and-bytes

中作为字符串(未流式传输)获取