Pandas随机阅读df

2024-05-15 02:57:19 发布

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

我最近在Kaggle上尝试了这个多重分类问题 这些是标签的value_counts()

2     1661772
4     1613640
8     1471098
5     1389385
9     1361200
3     1337218
7     1325075
6     1316784
10    1250655
1     1240152
0     1240152

现在,我知道它是不平衡的,所以首先我需要知道如何平衡它

我还需要分块读取文件,因为我只有16GB的内存,这还不够 所以我用了:

data_chunks = pd.read_csv(filename, chunk_size=1024)
data = next(iter(data_chunks))

变量data包含1024个元素,所有的标签都是零,这对零构成了严重的威胁,因为我的模型只是训练所有的东西都返回零 所以我需要知道如何在read_csv()函数中随机选择块

提前谢谢

PS:我刚开始使用现实生活中的数据集,而不是scikit-learn上的玩具数据集,如果我犯了任何新手错误,请原谅


Tags: 文件csv数据内存readdatavalue分类
2条回答
data_chunks = pd.read_csv(filename, chunk_size=1024)
for chunk in data_chunks:
    process(chunk)

通过这样做,您可以访问所有的块,现在有多种方法可以选择一个平衡的类数据集,方法是创建一个包含块中所有相等类的新数据帧

我还建议对无法直接加载到内存中的大型数据帧使用DASK。它不会改变pandas语法,在大数据帧上就像一个符咒一样工作

嘿,你可以使用样本(分数=0.20) 这将从csv中随机获取20%的数据,您可以相应地进行调整

data_chunks = pd.read_csv(filename).sample(frac = 0.20)

相关问题 更多 >

    热门问题