您对使用Numpy array_split
方法的行数限制有何想法?
我有一个dataframe
,行数超过6百万,并且希望将其分成20个左右的块。
我的尝试遵循以下内容: Split a large pandas dataframe
使用Numpy和array_split函数,但是它非常大dataframe
会永远持续下去。
我的dataframe
是df,其中包括8列和660万行。
df_split = np.array_split(df,20)
有什么其他方法可以分解这个想法吗?也欢迎使用其他技巧来提高数据框性能。
答案 0 :(得分:1)
我没有一个通用的解决方案,但是您可以考虑两件事:
pandas.read_csv
,则可以使用skiprows
参数。 df.values.reshape((20,-1,8))
重塑数据。但是,这需要将行数除以20。您可以考虑不使用最后一个样本(最多19个)来使其适合。当然,这将是最快的解决方案。答案 1 :(得分:1)
也许可以通过将数据帧分成以下示例来解决您的问题:
import numpy as np
import pandas as pds
df = pds.DataFrame(np.random.rand(14,4), columns=['a', 'b', 'c', 'd'])
def chunker(seq, size):
return (seq[pos:pos + size] for pos in range(0, len(seq), size))
for i in chunker(df,5):
df_split = np.array_split(i, 20)
print(df_split)
答案 2 :(得分:0)
对Houssem Maamria的代码进行一些修改,此文件可以帮助尝试将每个块导出到excel文件的人。
autogen.sh: line 2: $`\r`: command not found
autogen.sh: line 16: $`\r`: command not found
autogen.sh: line 17: cd: $`.\r`: No such file or directory