2017-05-14 20 views
0

私は以下のコピーを貼り付けたタイタニックデータのpysparkデータフレームを持っています。各バケットのパーセンテージを列に追加するにはどうすればよいですか?助けのためのpysparkデータフレームのパーセンテージを計算する

enter image description here

ありがとう!

+0

この場合、単一のバケットは何になりますか? –

+0

私は233/sum(count)、314/sum(count)..などが必要です – Balla13

答えて

0

以下のようなものが動作するはずです。

df = sc.parallelize([(1,'female',233), (None,'female',314),(0,'female',81),(1, None, 342), (1, 'male', 109)]).toDF().withColumnRenamed("_1","survived").withColumnRenamed("_2","sex").withColumnRenamed("_3","count") 
total = df.select("count").agg({"count": "sum"}).collect().pop()['sum(count)'] 
result = df.withColumn('percent', (df['count']/total) * 100) 
result.show() 

+--------+------+-----+------------------+ 
|survived| sex|count|   percent| 
+--------+------+-----+------------------+ 
|  1|female| 233| 21.59406858202039| 
| null|female| 314|29.101019462465246| 
|  0|female| 81| 7.506950880444857| 
|  1| null| 342| 31.69601482854495| 
|  1| male| 109|10.101946246524559| 
+--------+------+-----+------------------+ 
0

あなたがする必要があります。 - 割合 を見つけるためのUDFを作成 - - 合計 を計算し、結果の列を追加します。

関連する問題