Как я могу поменять значения выборочного столбца случайным образом? - PullRequest
1 голос
/ 20 июня 2019

Предположим, у меня большой набор данных (в формате CSV), например:

   Country  Age  Salary Purchased
0   France   44   72000        No
1    Spain   27   48000       Yes
2  Germany   30   54000        No
3    Spain   38   61000        No
4  Germany   40   45000       Yes
5   France   35   58000       Yes
6    Spain   75   52000        No
7   France   48   79000       Yes
8  Germany   50   83000        No
9   France   37   67000       Yes

Теперь, как я могу поменять все значения для выбранного столбца в случайном порядке?Например, я хочу поменять все значения первого столбца «Страна» случайным образом.

Ищем ваше предложение.Заранее спасибо!

Ответы [ 2 ]

4 голосов
/ 20 июня 2019

Перемешать на месте с помощью random.shuffle:

# <= 0.23
# np.random.shuffle(df['Country'].values)
# 0.24+
np.random.shuffle(df['Country'].to_numpy())

Или назначьте обратно с помощью random.choice:

df['Country'] = np.random.choice(df['Country'], len(df), replace=False)
3 голосов
/ 20 июня 2019

permutation

np.random.seed([3, 1415])
df.assign(Country=df.Country.to_numpy()[np.random.permutation(len(df))])

   Country  Age  Salary Purchased
0   France   44   72000        No
1  Germany   27   48000       Yes
2   France   30   54000        No
3    Spain   38   61000        No
4   France   40   45000       Yes
5    Spain   35   58000       Yes
6  Germany   75   52000        No
7    Spain   48   79000       Yes
8  Germany   50   83000        No
9   France   37   67000       Yes

sample

df.assign(Country=df.Country.sample(frac=1).to_numpy())
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...