我希望能根据每行的某一列的值,复制整个数据框中的所有行,并为每个新行建立索引。假设我有以下数据框:
Column A Column B
T1 3
T2 2
I want the result to be:
Column A Column B Index
T1 3 1
T1 3 2
T1 3 3
T2 2 1
T2 2 2
我能够使用固定值来做类似的事情,但是不能使用列上找到的信息。我目前使用的固定值工作代码如下:
idx = [lit(i) for i in range(1, 10)]
df = df.withColumn('Index', explode(array( idx ) ))
我试图进行更改:
lit(i) for i in range(1, 10)
to
lit(i) for i in range(1, df['Column B'])
并将其添加到我的array()函数中:
df = df.withColumn('Index', explode(array( lit(i) for i in range(1, df['Column B']) ) ))
但是它不起作用(TypeError:'Column'对象无法被解释为整数)。
我应该如何实现它?
Repeat
中的“B列”被视为原始列而非SQL表达式中的列?在API表单中它被视为列,对吧? - Ramesh Maharjan