我不确定用这句话来表达问题的好方法,但是一个例子会有所帮助。以下是我对列的数据框:名称,类型和计数:
import csv
with open('chicago.csv', newline='') as csv_file:
reader = list(csv.DictReader(csv_file, skipinitialspace=True))
我想获得一个像这样结构化的新数据框,其中Type列值已成为新列:
+------+------+-------+
| Name | Type | Count |
+------+------+-------+
| a | 0 | 5 |
| a | 1 | 4 |
| a | 5 | 5 |
| a | 4 | 5 |
| a | 2 | 1 |
| b | 0 | 2 |
| b | 1 | 4 |
| b | 3 | 5 |
| b | 4 | 5 |
| b | 2 | 1 |
| c | 0 | 5 |
| c | ... | ... |
+------+------+-------+
这里的列是[Name,0,1,2,3,4,5]。
答案 0 :(得分:2)
使用Spark中的<h1 class="main-text" id="one">text</h1>
<br/>
<h1 class="main-text" id="two">texttextext</h1>
<br/>
<h1 class="main-text" id="three">texttextexttexttextext</h1>
函数执行此操作。
pivot
这里,如果两行的名称和类型相同,则只需将计数值加在一起,但也可以进行其他聚合。
在问题中使用示例数据时产生的数据帧:
val df2 = df.groupBy("Name").pivot("Type").sum("Count")