我是python / pyspark的新手,所以请考虑到这一点。
我有一个非常平坦的数据框,看起来像这样:
+-----+---------------+------+----------+
|Batch|Analysis_method|Result|MethodType|
+-----+---------------+------+----------+
|Batc1|WaterContent | 5|Physical |
|Batc1|Color | 10|Visual |
|Batc1|TVC | 100|Microbial |
|Batc1|AEPmethod1 | 5|AEP |
|Batc2|WaterContent | 3|Physical |
|Batc2|Color | 28|Visual |
|Batc2|TVC | 200|Microbial |
|Batc2|AEPmethod2 | 50|AEP |
+-----+---------------+------+----------+
我需要一个数据帧,该数据帧每批具有一行,并且对于每种方法/方法类别,方法的结果分布在多列中,例如:
+-----+---------------+------+----------+---+----------+
|Batch|Water_content |Color |TVC |AEP|AEPmethod |
+-----+---------------+------+----------+---+----------+
|Batc1| 5| 10| 100| 5|AEPmethod1|
|Batc2| 3| 28| 200| 50|AEPmethod2|
+-----+---------------+------+----------+---+----------+
当然,以上内容非常简化。我有1000个批次,每个批次有10-20种分析方法。还要注意,AEP的值应合并在同一列中,并且在列中也应具有AEP方法名称。具有和AEP值的行可以很容易地识别为方法类别为AEP。
对于从哪里开始,我几乎一无所知。我可以仅使用批处理和值为所有方法生成多个2列数据框,然后将批处理号作为键将它们连接起来,但是我不确定这是最有效的方法吗?如果我喜欢2种方法,那很好,但是每批我有10-20种方法,而并非所有方法都具有全部方法。