我刚开始使用pandas数据框架进行Python和数据处理。我想处理测量数据(* .mf4)。这将通过使用包asammdf读入并创建一个熊猫数据框。
我最初的尝试是通过使用字典对测量数据(单个文件)进行分组。为了对数据进行后期处理,我总是必须遍历字典以获取数据帧。我找到了groupby
方法,并认为它可能比我的字典尝试更好。最初,我将数据帧的行数限制为最多10行,在此行之有效。现在运行的是全尺寸数据(行数= 20000000),我在pandas数据框中出现了内存错误。
*new_values = new_values[argsort]
MemoryError *
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_frame,并将其追加到其中。
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()
答案 0 :(得分:0)
您是否尝试使用reduce_memory_usage参数? https://asammdf.readthedocs.io/en/latest/api.html#asammdf.mdf.MDF.to_dataframe