按行值将pandas数据帧拆分为多个列

时间:2015-04-19 11:04:55

标签: python csv pandas split dataframe

我是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文档并搜索了此处提出的类似问题后,我无法找到最佳解决方案。

最终,我希望有一个单一的数据结构来进行一些探索性的可视化。我是朝着正确的方向前进,还是有更聪明的方法呢?

0 个答案:

没有答案