ValueError:数组太大了

时间:2017-04-04 19:22:49

标签: python

我正在尝试使用以下代码合并两个excel文件并遇到错误" ValueError:数组太大; arr.size * arr.dtype.itemsize大于最大可能大小。"

import pandas as pd

file1 = pd.read_excel("file1.xlsx")
file2 = pd.read_excel("file2.xlsx")

file3 = file1.merge(file2, on="Input E-mail", how="outer")

file3.to_excel("merged1.xlsx")

文件大小约为100MB + ~100MB,可用Ram为9GB(16GB)

1 个答案:

答案 0 :(得分:1)

您生成的数据框可能比您的两个输入数据框大得多。简单的例子:

import pandas as pd

values = pd.DataFrame({"id": [1,1,1,1], "value": ["a", "b", "c", "d"]})

users = pd.DataFrame({"id": [1,1,1], "users": ["Amy", "Bob", "Dan"]})

big_table = pd.merge(users, values, how="outer")

print big_table

结果:

     id  users    value
0     1   Amy       a
1     1   Amy       b
2     1   Amy       c
3     1   Amy       d
4     1   Bob       a
5     1   Bob       b
6     1   Bob       c
7     1   Bob       d
8     1   Dan       a
9     1   Dan       b
10    1   Dan       c
11    1   Dan       d