Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/304.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 大型数据集中数据帧到列表的高效转换_Python_Pandas_Dataframe - Fatal编程技术网

Python 大型数据集中数据帧到列表的高效转换

Python 大型数据集中数据帧到列表的高效转换,python,pandas,dataframe,Python,Pandas,Dataframe,我有以下代码读取csv文件(进入数据集DataFrame),并将其转换为列表(进入事务list),由apriori算法处理 import pandas as pd dataset = pd.read_csv('datasetFile.csv') transactions = [] num_rows = 8000 num_cols = 20 for i in range(0, num_rows): transactions.append([str(dataset.values[i,j])

我有以下代码读取csv文件(进入
数据集
DataFrame),并将其转换为列表(进入
事务
list),由apriori算法处理

import pandas as pd

dataset = pd.read_csv('datasetFile.csv')
transactions = []
num_rows = 8000
num_cols = 20
for i in range(0, num_rows):
    transactions.append([str(dataset.values[i,j]) for j in range(0, num_cols)])
.csv文件的格式为8000行,一行最多20个产品:

bread, butter
bread, milk, eggs, fruit
milk
eggs, milk, bread

上面的python代码适用于这个小数据集。然而,我当前的数据集大约有30万行和300列。如何改进这段python代码以将大型数据帧转换为列表?

我认为需要筛选值,转换为numpy数组,然后再转换为列表:

transactions = dataset.iloc[:num_rows, :num_cols].astype(str).values.tolist()

每行中有更多的值,如
num\u cols
?或者更少,所以没有问题,如果我理解正确的话。在大多数行中,值都是NaN.OK,一件小事,
dataset=pd.read\u csv('datasetFile.csv')
工作正常吗?第一排是最长的?是的,虽然很大,但那条线似乎还可以。对于更大的数据集,我实际上有
gc.enable()
gc.disable()
,非常好!这要快得多!我可以问一下为什么更快吗?@Jay-因为矢量化操作-没有循环。