【发布时间】:2020-09-15 10:39:29
【问题描述】:
我有 5000 行的 excel 文件,每行有 17 000 列,是否可以使用 python/pandas 拆分此文件,因为现在当我尝试读取 excel 时,它会返回 MemoryError 如果我能以某种方式读取文件,我可以减少列
drop(list(myFile.filter(regex=r'(x|y)')))
有人可以帮我怎么做吗?
【问题讨论】:
我有 5000 行的 excel 文件,每行有 17 000 列,是否可以使用 python/pandas 拆分此文件,因为现在当我尝试读取 excel 时,它会返回 MemoryError 如果我能以某种方式读取文件,我可以减少列
drop(list(myFile.filter(regex=r'(x|y)')))
有人可以帮我怎么做吗?
【问题讨论】:
在 pandas 中,您需要设置参数并且应该为 csv 列指定数据类型。 例如
low_memory=假
df = pd.read_csv("YOURFILENAME.csv", delimiter = '|',error_bad_lines=False,
index_col=False,
dtype='unicode') # , # This or the other one
#dtype={"user_id": int, "username": "string"}, low_memory = False)
最好的做法是为您的各个列指定数据类型,以防您因为您的案例中有大量列而无法指定数据类型。您可以简单地使用 Try,除了第二列并遍历值(如果 string 有它,如果 int8 有它 int 8 并且如果 int64 有它相同的方式)
编辑:在 read_excel 的情况下指定 Unicode
【讨论】:
read_excel不支持low_memory。
查看read_excel中的usecols参数
【讨论】: