根据列值将数据框转换为多列

时间:2020-10-14 07:45:08

标签: pyspark pyspark-dataframes

我是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种方法,而并非所有方法都具有全部方法。

0 个答案:

没有答案
相关问题