您已经在使用正确的方法。打开文件时,仅加载元数据,并且仅根据需要读取实际的通道样本(当您调用to_dataframe时)。
瓶颈可能是您没有提供raster参数(请参阅此处的文档https://asammdf.readthedocs.io/en/latest/api.html#asammdf.mdf.MDF.to_dataframe),在这种情况下将使用所选通道的所有时间戳的联合构建输出数据帧,并对所有列进行插值。玩转光栅参数
from asammdf import MDF
if __name__ == '__main__':
path = 'C:/path/to/some/file.mf4'
mdfObj = MDF(path, version='4.10')
columns=['A','B','C']
# 0.1s
df = mdfObj.to_dataframe(channels=columns, raster=0.1)
# or use the time stamps of channel 'A'
df = mdfObj.to_dataframe(channels=columns, raster='A')
编辑:@Jonas 从 6.1.0 版开始,可以使用channels
参数https://asammdf.readthedocs.io/en/development/tips.html#selective-channel-loading进行选择性文件加载
from asammdf import MDF
if __name__ == '__main__':
path = 'C:/path/to/some/file.mf4'
columns=['A','B','C']
mdfObj = MDF(path, channels=columns)