PythonPandas记忆

2024-03-29 10:06:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图将csv文件中的数据转换为矩阵,这是我使用的代码:

import pandas as pd
df = pd.read_csv('test.csv', usecols=[0,1,2], names=['A', 'B', 'C'])
pd.pivot_table(df, index='A', columns='B', values='C')

输入如下:

^{pr2}$

结果是:

1    2   3    4    5
1  1.0  2.0  3.2  2.3 1.3
2  2.2   5   3.2  1.1  . 
3   .    .     .   .   .

但是,这个pandas pivot表似乎只适用于较小的csv文件,如果我将其应用于较大的csv文件,则会出现内存错误。不确定是不是Jupyter出了问题,但错误代码如下:

MemoryError                               Traceback (most recent call last)
<ipython-input-12-46167ab8fec6> in <module>()
       1 import pandas as pd
 ----> 2 df = pd.read_csv('largercsv.csv', usecols=[0,1,2], names=['A', 'B', 'C'], skiprows=25)
       3 pd.pivot_table(df, index='A', columns='B', values='C')


     643                     skip_blank_lines=skip_blank_lines)
     644 
 --> 645         return _read(filepath_or_buffer, kwds)
     646 
     647     parser_f.__name__ = name


     398         return parser
     399 
 --> 400     data = parser.read()
     401     parser.close()
     402     return data


     937 
 --> 938         ret = self._engine.read(nrows)
     939 
     940         if self.options.get('as_recarray'):


    1505     def read(self, nrows=None):
    1506         try:
 -> 1507             data = self._reader.read(nrows)
    1508         except StopIteration:
    1509             if self._first_chunk:

     pandas\parser.pyx in pandas.parser.TextReader.read (pandas\parser.c:10364)()

     pandas\parser.pyx in pandas.parser.TextReader._read_low_memory (pandas\parser.c:11065)()

     pandas\parser.pyx in pandas.parser._concatenate_chunks (pandas\parser.c:27499)()

     MemoryError: 

可能是我的电脑速度,但不太确定该怎么做。 另外,我四处查看,但无法将输出转换为excel电子表格。有办法解决这些问题吗?在

提前谢谢!在


Tags: 文件csvinselfparserpandasdfread