1

在 Beckhoff TwinCAT Scope 中记录数据后,可以将该数据导出为 CSV 文件。然而,所述CSV文件具有相当复杂的格式。任何人都可以建议将此类文件导入熊猫数据框以便我进行分析的最有效方法吗?

可以在此处找到格式示例: https ://infosys.beckhoff.com/english.php?content=../content/1033/tcscope2/html/TwinCATScopeView2_Tutorial_SaveExport.htm&id=

4

2 回答 2

1

无需编写自定义解析器。使用示例数据scope_data.csv

Name,fasd,,,,
File,C;\,,,,
Start,dfsd,,,,
,,,,,
,,,,,
Name,Peak,Name,PULS1,Name,SINUS_FAST
Net id,123.123.123,Net id,123.123.124,Net Id,123.123.125
Port,801,Port,801,Port,801
,,,,,
0,0.6113936598,0,0.07994111349,0,0.08425652468
0,0.524852539,0,0.2051963401,0,0.4391185847
0,0.4993723482,0,0.2917317117,0,0.4583736263
0,0.5976553194,0,0.8675482865,0,0.8435987898
0,0.06087224998,0,0.7933980583,0,0.5614294705
0,0.1967968423,0,0.3923966599,0,0.1951608414
0,0.9723649064,0,0.5187276782,0,0.7646786192

您可以按如下方式导入:

import pandas as pd

scope_data = pd.read_csv(
    "scope_data.csv",
    skiprows=[*range(5), *range(6, 9)],
    usecols=[*range(1, 6, 2)]
)

然后你得到

>>> scope_data.head()
       Peak     PULS1  SINUS_FAST
0  0.611394  0.079941    0.084257
1  0.524853  0.205196    0.439119
2  0.499372  0.291732    0.458374
3  0.597655  0.867548    0.843599
4  0.060872  0.793398    0.561429

我没有原始范围 csv,但稍微调整一下skiprowsuse_cols应该会给你想要的结果。

于 2020-03-06T19:42:21.110 回答
0

要读取文件的大部分内容(忽略标题材料),请使用skiprows关键字参数read_csv

import pandas as pd
df = pd.read_csv('data.csv', skiprows=18)

对于标题材料,我认为您必须编写一个自定义解析器。

于 2019-09-30T06:59:50.867 回答