微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

python – 使用大型csv的pandas结构(迭代和chunksize)

我有一个大的csv文件,大约600mb,有1100万行,我想创建像枢轴,直方图,图形等统计数据.显然,我只想正常阅读它:

df = pd.read_csv('Check400_900.csv', sep='\t')

不起作用所以我发现迭代和chunksize在类似的帖子,所以我用

df = pd.read_csv('Check1_900.csv', sep='\t', iterator=True, chunksize=1000)

一切都很好,我可以打印df.get_chunk(5)并用刚搜索整个文件

for chunk in df:
    print chunk

我的问题是我不知道如何在整个df中使用下面这些东西,而不仅仅是一个

plt.plot()
print df.head()
print df.describe()
print df.dtypes
customer_group3 = df.groupby('UserID')
y3 = customer_group.size()

我希望我的问题不那么令人困惑

解决方法:

解决方案,如果需要创建一个大的DataFrame,如果需要一次处理所有数据(可能的,但不是recommended):

然后使用concat对所有块进行df,因为函数输出类型:

df = pd.read_csv('Check1_900.csv', sep='\t', iterator=True, chunksize=1000)

不是数据帧,而是pandas.io.parsers.TextFileReader – source.

tp = pd.read_csv('Check1_900.csv', sep='\t', iterator=True, chunksize=1000)
print tp
#<pandas.io.parsers.TextFileReader object at 0x00000000150E0048>
df = pd.concat(tp, ignore_index=True)

我认为有必要将参数ignore index添加函数concat中,因为避免了索引的重复性.

编辑:

但是如果想要使用聚合这样的大数据,那么使用dask要好得多,因为它提供了高级并行性.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐