2つの既存の列name
を持つpysparkデータフレームdfがありbirthdate
、値をランダムな値で上書きしたいと思います。
列name
には、固定長(たとえば10)のランダムな文字セットを持つ文字列が必要です。すべての行が同じ文字列を取得しないように、文字列は行ごとにランダム化する必要があります。
列にbirthdate
私は形式上の文字列をしたいですYYYY-MM-DD
。各行に1960-01-01
との間のランダムな値を持たせたい2019-01-01
。
どうすればこれを達成できますか?
あなたはランダムな文字列を作成することができます
''.join(random.choice(string.ascii_lowercase) for x in range(size))
とランダムな日付
month = random.randint(1, 12)
str(random.randint(1960, 2018)) + '-' + str(month)+'-' + (str(random.randint(1, 28)) if month == 2 else str(random.randint(1, 30)) if month % 2 == 0 else str(random.randint(1, 31)))
ことを忘れてはいけないimport random
とimport string
。
データフレームの形状で配列を作成するには、同じサイズのnumpy.ndarrayを作成します
import numpy as np
arr = np.ndarray(2, len(dataframe[0]))
ループを介して適切な値を与えるよりも
for y in range(len(dataframe[0])):
arr[0, y] = ''.join(random.choice(string.ascii_lowercase) for x in range(size))
month = random.randint(1, 12)
arr[1, y] =str(random.randint(1960, 2018)) + '-' + str(month)+'-' + (str(random.randint(1, 28)) if month == 2 else str(random.randint(1, 30)) if month % 2 == 0 else str(random.randint(1, 31)))
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加