パンダでランダムな値で新しい列を初期化しようとしました。私はこのようにしました
df['business_vertical'] = np.random.choice(['Retail', 'SME', 'Cor'], df.shape[0])
Pysparkでそれを行うにはどうすればよいですか?
値のリストを生成してから、ランダムに抽出するだけです。
from pyspark.sql import functions as F
df.withColumn(
"business_vertical",
F.array(
F.lit("Retail"),
F.lit("SME"),
F.lit("Cor"),
).getItem(
(F.Rand()*3).cast("int")
)
)
Pyspark.sql.functions.Rand()を使用できます
df.withColumn('Rand_col', F.Rand()).show()
乱数の場合:
import random
randomnum= random.randint(1000,9999)
import org.Apache.spark.sql.functions.lit
val newdf = df.withColumn("newcol",lit("your-random"))
または: pandas.Series.combine_first
s1 = pd.Series([1, np.nan])
s2 = pd.Series([3, 4])
s1.combine_first(s2)