我是python和pandas的新手,并试图在我的研究的响应时间内制作方向数据的汇总图。我正在尝试的方法需要通过试验对数据进行分组和拆分,但是我没有在原始数据文件中分组的索引变量。就像一些上下文一样,我正在处理大约300个.csv文件,每个文件有10-15k行。以下是原始.csv文件格式的片段:
25.10 3.1 7.8 173.6 0.695646 -0.046507 0.716452 -0.024699 -0.014172 -0.712739 -0.086428 0.695940 88.4 1.8 -174.3
25.25 3.1 7.6 173.6 0.696440 -0.045587 0.715711 -0.025514 -0.013402 -0.712050 -0.085468 0.696778 88.5 1.7 -174.3
25.40 2.9 7.6 173.6 0.697160 -0.045407 0.715048 -0.024725 -0.014230 -0.711399 -0.085251 0.697454 88.6 1.7 -174.3
25.55 3.2 7.8 173.6 0.695360 -0.046466 0.716729 -0.024797 -0.014058 -0.713018 -0.086403 0.695660 88.4 1.8 -174.2
Response: S
END TRIAL 1
BEGIN TRIAL 2
0.05 126.4 126.4 0.0 -0.322306 -0.712941 -0.535465 -0.317978 -0.322306 -0.712941 -0.535465 -0.317978 105.7 -34.0 74.7
0.20 129.1 129.1 0.0 -0.311974 -0.711464 -0.555195 -0.297070 -0.311974 -0.711464 -0.555195 -0.297070 105.1 -37.2 76.3
正如您所看到的,没有变量可以按试验或标题分组,只有三行(具有不同的结构)将试验分开。
我已设法获取列标题并使用pandas提取相关变量:
df = pd.read_csv('data.csv', delim_whitespace=True, names=['time', 'S1', 'S2', 'Enc', 'q1a', 'q1b', 'q1c', 'q1d', 'q2a', 'q2b', 'q2c', 'q2d', 'yaw', 'pitch', 'roll'], header=0, usecols=['time', 'S1', 'S2'])
usecols=['time', 'S1', 'S2']
输出此数据结构:
time S1 S2
0 0.25 277.5 277.5
1 0.25 277.5 277.5
2 0.40 277.5 277.5
3 0.55 277.5 277.5
4 0.70 277.5 277.5
5 0.85 277.5 277.5
.........................
784 117.70 161.2 96.9
785 END TRIAL 1.0
786 BEGIN TRIAL 2.0
787 0.10 159.9 159.9
更接近,但现在我仍然坚持如何将单个试验解析为单独的列或数据结构,因为没有分组列表表示试验编号,并且每个试验的行数不同。在阅读了过去几天的Pandas文档并搜索了此处提出的类似问题后,我无法找到最佳解决方案。
最终,我希望有一个单一的数据结构来进行一些探索性的可视化。我是朝着正确的方向前进,还是有更聪明的方法呢?