日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python迭代数据类型_在大型数据集上自动迭代推断数据类型和最小项大小

發布時間:2025/4/5 python 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python迭代数据类型_在大型数据集上自动迭代推断数据类型和最小项大小 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在我的工作領域,我經常得到一個很大的csv文件,根本沒有關于內容或格式的信息。我正在嘗試開發一個工作流來自動推斷列的數據類型以及對象數據類型的最大字符串長度,最終目標是將格式化的數據集存儲在HDFStore中。我正在尋求幫助,為這個場景提供最佳實踐。我有一些有效的方法,但似乎效率低下:import pandas as pd

# first pass to determine file formats using pd.read_csv inference

fmts = []

chunker = pd.read_csv('../data/train.csv', chunksize=10000)

for chunk in chunker:

fmts.append(chunk.dtypes)

fmts = reduce(lambda x,y: x.combine(y, max), fmts)

前面的代碼段為每個塊累積推斷的數據類型,然后使用最大值減少它們:

^{pr2}$

所以第一步就完成了。我已經創建了一個數據類型列表,這些數據類型可以在后續運行時傳遞給read_csv。現在要找到object列的最大長度,這些列將作為string存儲在HDFStore中:# second pass now get max lengths of objects

objs = fmts[fmts == 'object'].index

cnvt = {obj : str for obj in objs}

lens = []

chunker = pd.read_csv('../data/train.csv', chunksize=10000,

converters=cnvt, usecols=objs)

for chunk in chunker:

for col in chunk:

lens.append(chunk.apply(lambda x: max(x.apply(len))))

# reduce the lens into one

lens = dict(reduce(lambda x,y: x.combine(y, max), lens))

我現在有了一個字典,其中object類型的列是鍵,所有塊的最大單元格長度是值:In[2]:lens

Out[2]:

{'f137': 20,

'f138': 26,

'f206': 20,

'f207': 27,

'f276': 20,

'f277': 27,

'f338': 26,

'f390': 32,

'f391': 42,

'f419': 20,

'f420': 26,

'f466': 19,

'f469': 27,

'f472': 35,

'f534': 27,

'f537': 35,

'f626': 32,

'f627': 42,

'f695': 22,

'f698': 22}

最后一步是使用推斷的格式和長度將所有內容存儲在HDFStore表中:# Lastly loop through once more to append to an HDFStore table!

store = pd.HDFStore("../data/train.h5")

chunker = pd.read_csv('../data/train.csv', chunksize=10000, dtype=dict(fmts))

for chunk in chunker:

store.append('train', chunk, min_itemsize=lens)

這個工作流程有意義嗎?其他人如何處理不適合內存且需要存儲在HDFStore磁盤上的大型數據集?在

總結

以上是生活随笔為你收集整理的python迭代数据类型_在大型数据集上自动迭代推断数据类型和最小项大小的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。