1. ホーム
  2. python

[解決済み] Pandas: 範囲内のランダムな整数でdfに新しい列を作成する

2023-05-01 16:23:46

質問

50k行のpandasデータフレームを持っています。 1から5までのランダムに生成される整数である新しい列を追加しようとしています。

もし私が50k個の乱数が欲しいなら、私は使うでしょう。

df1['randNumCol'] = random.sample(xrange(50000), len(df1))

となっていますが、これについては

Rでサイドノート、やりますね。

sample(1:5, 50000, replace = TRUE)

何か提案はありますか?

どのように解決するのですか?

一つの解決策は numpy.random.randint :

import numpy as np
df1['randNumCol'] = np.random.randint(1, 6, df1.shape[0])

また、数字が連続していない場合は(遅くなりますが)、このようにすることができます。

df1['randNumCol'] = np.random.choice([1, 9, 20], df1.shape[0])

結果を再現できるようにするために、シードを numpy.random.seed で設定することができます (例. np.random.seed(42) )