pandas python candas的任何替代品

rekjcdws  于 2023-09-29  发布在  Python
关注(0)|答案(1)|浏览(105)

我一直在使用python candas将blf转换为csv,但这需要太长时间。谁能给我一个最好的解决方案。
将candas导入为cd
db = cd.load_dbc(“dbc_folder”)

这是BLF文件'my_file. blf':

log = cd.from_file(“my_file”)

这将打印BLF中消息的信号:

print(log[“AVGcellTemperature”])

w1e3prcc

w1e3prcc1#

我不熟悉candas,但对于这个简单的用例,你可以用几行代码转换python-can:

import can

with open('trace.blf', 'rb') as f_in:
    log_in = can.io.BLFReader(f_in)

    with open("trace.csv", 'w') as f_out:
        log_out = can.io.CSVWriter(f_out)
        for msg in log_in:
            log_out.on_message_received(msg)
        log_out.stop()

请注意,数据列是base64编码的(请参见doc)。您可以使用pandas轻松地将其转换为更传统的格式:

import pandas as pd
from base64 import b64decode

df = pd.read_csv('trace.csv')
df['data'] = df['data'].apply(lambda x: b64decode(x).hex())

如果您发现任何性能改进,请告诉我们!

相关问题