python - 在 Python 中附加数据帧时出现内存错误
问题描述
我是 Python 和使用 pandas 数据框进行数据处理的新手。我想处理测量数据 (*.mf4)。这将通过使用包 asammdf 读入并创建一个 pandas 数据框。
我最初的尝试是使用字典对测量数据(单个文件)进行分组。为了对数据进行后处理,我总是要遍历字典来获取数据帧。我找到了这种groupby
方法,并认为它可能比我的字典尝试更好。起初,我将数据框的行数限制为 10,它工作正常。现在使用完整大小的数据运行(行数 = 20000000),我在 pandas 数据框中出现内存错误。
*new_values = new_values[argsort]
内存错误*
的输出data_frame.info()
给出以下内容:
RangeIndex: 18410041 entries, 0 to 18410040
Data columns (total 12 columns):
dtypes: float64(8), int16(1), int32(1), int64(2)
memory usage: 1.5 GB
应该创建大约 30 个 data_frames 并附加到一个。
from asammdf import MDF
import pandas as pd
data_mi = pd.DataFrame()
for file in mf4_files:
with MDF(file) as mdf_file:
data_frame = mdf_file.to_dataframe(channels=labels) # export mdf-data
speed = int(config_data[file][0]) # speed
load = config_data[file][1] # load
data_frame = data_frame.assign(load=load,speed=speed)
data_frame.reset_index(inplace=True)
#data_mi = data_mi.append(data_frame.iloc[:10])
data_mi = data_mi.append(data_frame) #select all data in one data frame
data_mi_max = data_mi.groupby(['load','speed'],sort=False).max()
解决方案
您是否尝试使用 reduce_memory_usage 参数?https://asammdf.readthedocs.io/en/latest/api.html#asammdf.mdf.MDF.to_dataframe
推荐阅读
- office365 - 我的应用程序中的 office 365 登录身份验证
- scala - Spark scala,过滤结果大小大于原始数据?
- javascript - Vue.js 中的样式元素
- r - R - 调度到新方法 print.list() 的问题
- android - 需要适用于 iOS 的 ProgressHUD 的 Android 等价物
- asp.net - 如何将 JSON 数据传递到文本框 Asp.net Ajax
- c++ - 我怎样才能删除这个?...(进程 4652)以代码 0 退出
- php - 要添加并插入到表中的计数行
- c++ - Arduino新手。“随机”值在重置时重复
- python - Discord.py 辅助功能不执行文本