我想要将Matlab代码迁移到Python代码。虽然我对Python不熟悉,但我仍在尝试解析一个CSV文件。
我的意图是解析一个结构类似于以下示例的CSV文件:
SENSORID;DATESMPL;TRE;ISRC
FQBI-000-001;08/01/2020 13:56:00;-10.0956;0.03662119
LAMBDAS;1550;1551;1552;1553;1554
REFERENCE;6961.058824;6959.564706;6959.423529;6960.988235;6961.788235
1;166;164;162;138;162
2;146;152;161;143;142
3;138;147;150;133;124
4;134;120;158;145;133
5;135;157;135;139;137
预期结果(在Python数据帧上):
SENSORID DATESMPL TRE ISRC 1550 1551 1552 1553 1554
0 FQBI-000-001 08/01/2020 13:56:00 -10.0956 0.03662119 166 164 162 138 162
1 FQBI-000-001 08/01/2020 13:56:00 -10.0956 0.03662119 146 152 161 143 142
2 FQBI-000-001 08/01/2020 13:56:00 -10.0956 0.03662119 138 147 150 133 124
3 FQBI-000-001 08/01/2020 13:56:00 -10.0956 0.03662119 134 120 158 145 133
4 FQBI-000-001 08/01/2020 13:56:00 -10.0956 0.03662119 135 157 135 139 137
参考行将被丢弃。对于每个实际的测量数据行(以1到5的整数开头),SENSORID、DATESMPL、TRE和ISRC的值必须被复制。当然,我要解析的实际CSV文件比我的示例要大得多,即LAMBDA从1550到1850,有255个测量行(每个文件约250 KB)。
为了使事情更加简单,我最终将不得不导入多达10,000个这些文件并将它们存储在一个唯一的
DataFrame
中。使用Matlab,我可以使用
textscan
函数来解析这些文件,并将数据存储在提供统计工具箱的数据集对象中。导入这些文件的10000个可以在不到10分钟的时间内完成,这对于这种情况是可以接受的。在Python下完成这项任务的最佳方法是什么?
看起来有很多方法可以做到这一点:
- 将文件内容作为字符串读取到列表中 - 使用
NumPy
数组或简单地使用
- 使用DataFrame.read_csv()
但我不确定哪一种方法是最有效的。我真的希望能够保持与Matlab相近(或更好,当然)的性能。
pd.read_csv()
非常灵活,可能会有所帮助。 - aayush_maliklambdas
、fqbi
和reference
或者多个? - Umar.H