首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ASAMMDF - MemoryError:无法为形状(2207220 )和数据类型float64的数组分配16.8 MiB

ASAMMDF - MemoryError:无法为形状(2207220 )和数据类型float64的数组分配16.8 MiB
EN

Stack Overflow用户
提问于 2022-11-18 13:06:16
回答 1查看 18关注 0票数 -1

我试图使用asammdf从".dat“文件中提取数据。

在使用asammdf提取数据之后,我正在尝试将数据转换为可以使用熊猫和matplotlib进行分析的数据。

下面是我用于提取数据并转换为dataframe的代码:

代码语言:javascript
复制
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import asammdf
import tkinter as tk
from tkinter.ttk import *

Data_File_01 = asammdf.MDF(r"C:\Users\hsr4ban\Desktop\16_MC Dynamic.dat")
Data_01 = Data_File_01.to_dataframe()

但是,我得到的内存错误如下:

代码语言:javascript
复制
runfile('C:/Users/hsr4ban/Desktop/untitled0.py', wdir='C:/Users/hsr4ban/Desktop')
Traceback (most recent call last):

  File ~\Desktop\untitled0.py:11 in <module>
    Data_File_01 = asammdf.MDF(r"C:\Users\hsr4ban\Desktop\16_MC Dynamic.dat").to_dataframe()

  File ~\AppData\Roaming\Python\Python39\site-packages\asammdf\mdf.py:4466 in to_dataframe
    df = pd.DataFrame(nonstrings, index=master)

  File ~\AppData\Roaming\Python\Python39\site-packages\pandas\core\frame.py:636 in __init__
    mgr = dict_to_mgr(data, index, columns, dtype=dtype, copy=copy, typ=manager)

  File ~\AppData\Roaming\Python\Python39\site-packages\pandas\core\internals\construction.py:502 in dict_to_mgr
    return arrays_to_mgr(arrays, columns, index, dtype=dtype, typ=typ, consolidate=copy)

  File ~\AppData\Roaming\Python\Python39\site-packages\pandas\core\internals\construction.py:156 in arrays_to_mgr
    return create_block_manager_from_column_arrays(

  File ~\AppData\Roaming\Python\Python39\site-packages\pandas\core\internals\managers.py:1959 in create_block_manager_from_column_arrays
    mgr._consolidate_inplace()

  File ~\AppData\Roaming\Python\Python39\site-packages\pandas\core\internals\managers.py:1685 in _consolidate_inplace
    self.blocks = tuple(_consolidate(self.blocks))

  File ~\AppData\Roaming\Python\Python39\site-packages\pandas\core\internals\managers.py:2084 in _consolidate
    merged_blocks = _merge_blocks(

  File ~\AppData\Roaming\Python\Python39\site-packages\pandas\core\internals\managers.py:2111 in _merge_blocks
    new_values = np.vstack([b.values for b in blocks])  # type: ignore[misc]

  File <__array_function__ internals>:180 in vstack

  File ~\AppData\Roaming\Python\Python39\site-packages\numpy\core\shape_base.py:282 in vstack
    return _nx.concatenate(arrs, 0)

  File <__array_function__ internals>:180 in concatenate

MemoryError: Unable to allocate 5.46 GiB for an array with shape (332, 2207220) and data type float64

我签了堆栈溢出。在“”文件的情况下,很少有人建议使用.csv文件,但在这种情况下,它是".dat“文件,而我找不到多少帮助。

有人能建议如何解决这个问题吗?

提前谢谢。

EN

回答 1

Stack Overflow用户

发布于 2022-11-22 08:11:02

在使用raster时,需要使用to_dataframe参数,因为文件中有太多的单独时间戳(参见https://asammdf.readthedocs.io/en/master/api.html#asammdf.mdf.MDF.iter_to_dataframe)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74490140

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档