簡體   English   中英

將對象轉換為字符串 Python 的最快方法

[英]Fastest way to convert object to string Python

我有一個從 Oracle DB 中提取的 ~250,000 行數據集。 我關心的主要數據是作為HUGECLOB對象拉取的文本字段。 將我的數據存儲到 CSV 需要相當長的時間,所以我決定通過以下方式切換到 Feather: Pandas read_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- 中作為字符串(未流式傳輸)獲取字符串和字節

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM