首先给大家看下文件数据,需要实现的是对key值得分组求和。
通过pandas实现思路有两种,一种是直接对文件读取并使用groupby进行分组,一种是将数据分块读取,迭代操作,防止数据量大内存爆掉。
其中,第一种思路是用了DataFrame自带的groupby,那么如果转换的时候使用了Series结构,也可使用Series结构中的value_counts。
files = 'E:/.../data6.csv'
df = pd.read_csv(files,nrows = 5)
print(df)
df = pd.read_csv(files)
print(df.describe())
文件数据前5行
文件描述:共一万行数据
方法一、直接读取数据通过groupby实现
使用DataFrame下的groupby,轻松实现分组计数,且groupby的参数可以用list,实现多类分组计数。这里对结果数据进行了降序排列,且只展示了前五行数据。
同时,我对该方法进行了计时,总耗时0.05秒。
代码
结果
方法二、采用分块读取文件数据,并对分块数据进行计数
这边分块的时候,最开始使用了chunksize = 100,也就是说100行一块,需要耗时1秒;改用10000的话,需要耗时0.02秒。也就是说,像10000行这种小数据集,直接读取就行,不需要分块。
需要注意的是,这边在对key值计数的时候,我们使用了fill_value填充Nan值,以防出现Nan不可计算的情况。
代码
结果












网友评论