我有这个数据框
df = sc.parallelize([(1, [1, 2, 3]), (1, [4, 5, 6]) , (2,[2]),(2,[3])]).toDF(["store", "values"])
+-----+---------+
|store| values|
+-----+---------+
| 1|[1, 2, 3]|
| 1|[4, 5, 6]|
| 2| [2]|
| 2| [3]|
+-----+---------+
Run Code Online (Sandbox Code Playgroud)
我想转换成以下df:
+-----+------------------+
|store| values |
+-----+------------------+
| 1|[1, 2, 3, 4, 5, 6]|
| 2| [2, 3]|
+-----+------------------+
Run Code Online (Sandbox Code Playgroud)
我这样做了:
from pyspark.sql import functions as F
df.groupBy("store").agg(F.collect_list("values"))
Run Code Online (Sandbox Code Playgroud)
但解决方案有这个 WrappedArrays
+-----+----------------------------------------------+
|store|collect_list(values) |
+-----+----------------------------------------------+
|1 |[WrappedArray(1, 2, 3), WrappedArray(4, 5, 6)]|
|2 |[WrappedArray(2), WrappedArray(3)] |
+-----+----------------------------------------------+
Run Code Online (Sandbox Code Playgroud)
有没有办法将其转换WrappedArrays为连续数组?或者我可以采用不同的方式吗? …
我有一个这样的数据框:
我想计算新的列日的平均值salary_1,salary_2和salary_3.
df = pd.DataFrame({'salary_1':[230,345,222],'salary_2':[235,375,292],'salary_3':[210,385,260]})
salary_1 salary_2 salary_3
0 230 235 210
1 345 375 385
2 222 292 260
Run Code Online (Sandbox Code Playgroud)
我怎样才能以最有效的方式在熊猫中做到这一点?实际上我有更多列,我不想一个一个地写这个.
像这样的东西:
salary_1 salary_2 salary_3 salary_mean
0 230 235 210 (230+235+210)/3
1 345 375 385 ...
2 222 292 260 ...
Run Code Online (Sandbox Code Playgroud)
谢谢!
从这个数据框
+-----+-----------------+
|store| values |
+-----+-----------------+
| 1|[1, 2, 3,4, 5, 6]|
| 2| [2,3]|
+-----+-----------------+
Run Code Online (Sandbox Code Playgroud)
我想应用这个Counter函数来得到这个:
+-----+------------------------------+
|store| values |
+-----+------------------------------+
| 1|{1:1, 2:1, 3:1, 4:1, 5:1, 6:1}|
| 2|{2:1, 3:1} |
+-----+------------------------------+
Run Code Online (Sandbox Code Playgroud)
我使用另一个问题的答案得到了这个数据框:
所以我尝试修改答案中的代码,如下所示:
选项1:
+-----+-----------------+
|store| values |
+-----+-----------------+
| 1|[1, 2, 3,4, 5, 6]|
| 2| [2,3]|
+-----+-----------------+
Run Code Online (Sandbox Code Playgroud)
选项 2:
+-----+------------------------------+
|store| values |
+-----+------------------------------+
| 1|{1:1, 2:1, 3:1, 4:1, 5:1, 6:1}|
| 2|{2:1, 3:1} |
+-----+------------------------------+
Run Code Online (Sandbox Code Playgroud)
但它不起作用。
有谁知道我该怎么做? …