小编Smi*_*itM的帖子

Pyspark DataFrame:将具有多个值的列拆分为行

我有一个数据框(具有更多行和列),如下所示。

示例 DF:

from pyspark import Row
from pyspark.sql import SQLContext
from pyspark.sql.functions import explode

sqlc = SQLContext(sc)

df = sqlc.createDataFrame([Row(col1 = 'z1', col2 = '[a1, b2, c3]', col3 = 'foo')])
# +------+-------------+------+
# |  col1|         col2|  col3|
# +------+-------------+------+
# |    z1| [a1, b2, c3]|   foo|
# +------+-------------+------+

df
# DataFrame[col1: string, col2: string, col3: string]
Run Code Online (Sandbox Code Playgroud)

我想要的是:

+-----+-----+-----+
| col1| col2| col3|
+-----+-----+-----+
|   z1|   a1|  foo|
|   z1|   b2|  foo|
|   z1|   c3|  foo|
+-----+-----+-----+
Run Code Online (Sandbox Code Playgroud)

我试图复制RDD这里提供的解决方案: …

apache-spark apache-spark-sql pyspark pyspark-sql

5
推荐指数
1
解决办法
4397
查看次数

如何在 Python 中的 for 循环的每次迭代中创建一个新的数据帧

单击此处查看图像

#### the data is inverted #######

#### To bring back to its original position ####### 
   df_1= df_i.iloc[::-1]

#### Set index again ###################
df_1.index = range(len(df_1.index))
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

#

因为我正在创建一个数据框 df ,但我希望数据框名称为 df_0, df_1, df_2 ......................... df_n

在每次迭代中,我都想创建一个新的数据框,如何?

而我的计数 = 22,这意味着我的循环将运行 22 次。

有没有办法将所有数据帧水平连接为单个 dta 帧

14、15、16(来自第一张)、14A、15A、16A(来自第二张)、14B、15B、16B、(来自第三张)作为 col1、col2、col3、col4........ ………………

感谢你的帮助

python pandas python-3.6

1
推荐指数
1
解决办法
9257
查看次数