如何根据 pyspark 中特定列的唯一值生成列?
How to generate the columns based on the unique values of that particular column in pyspark?
我有如下数据框
+----------+------------+---------------------+
|CustomerNo|size |total_items_purchased|
+----------+------------+---------------------+
| 208261.0| A | 2|
| 208263.0| C | 1|
| 208261.0| E | 1|
| 208262.0| B | 2|
| 208264.0| D | 3|
+----------+------------+---------------------+
我有另一个 table df,它只包含客户编号。我必须创建独特的 comfortStyles 列,并且必须更新 df
中的 total_items_purchased
我的 df table 应该是这样的
CustomerNo,size_A,size_B,size_C,size_D,size_E
208261.0 1 0 0 0 1
208262.0 0 2 0 0 0
208263.0 0 0 1 0 0
208264.0 0 0 0 3 0
谁能告诉我怎么做?
您可以使用 pivot
函数重新排列 table。
df = (df.groupBy('CustomerNo')
.pivot('size')
.agg(F.first('total_items_purchased'))
.na.fill(0))
我有如下数据框
+----------+------------+---------------------+
|CustomerNo|size |total_items_purchased|
+----------+------------+---------------------+
| 208261.0| A | 2|
| 208263.0| C | 1|
| 208261.0| E | 1|
| 208262.0| B | 2|
| 208264.0| D | 3|
+----------+------------+---------------------+
我有另一个 table df,它只包含客户编号。我必须创建独特的 comfortStyles 列,并且必须更新 df
中的 total_items_purchased我的 df table 应该是这样的
CustomerNo,size_A,size_B,size_C,size_D,size_E
208261.0 1 0 0 0 1
208262.0 0 2 0 0 0
208263.0 0 0 1 0 0
208264.0 0 0 0 3 0
谁能告诉我怎么做?
您可以使用 pivot
函数重新排列 table。
df = (df.groupBy('CustomerNo')
.pivot('size')
.agg(F.first('total_items_purchased'))
.na.fill(0))