gpt4 book ai didi

python - 使用带有大 csv 的 pandas 结构(迭代和 block 大小)

转载 作者:IT老高 更新时间:2023-10-28 20:33:05 26 4
gpt4 key购买 nike

我有一个大的 csv 文件,大约 600mb 有 1100 万行,我想创建统计数据,如数据透视图、直方图、图表等。显然只是想正常读取它:

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

不起作用,所以我在类似的帖子中发现了 iterate 和 chunksize,所以我使用了:

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

一切都好,例如,我可以 print df.get_chunk(5) 并搜索整个文件:

for chunk in df:
print chunk

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

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

最佳答案

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

然后使用 concat对于 df 的所有 block ,因为函数的输出类型:

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 ,因为它提供了高级并行性。

关于python - 使用带有大 csv 的 pandas 结构(迭代和 block 大小),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33642951/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com