Я хочу добавить случайным образом от A до Z в столбцах, используя Loops. Как я могу это сделать? - PullRequest
0 голосов
/ 08 апреля 2020

Я хочу добавить в столбцы случайным образом от a до z, используя циклы. Как я могу это сделать?

 I want to add randomly a to z in columns using loops.how can i do this?
example:
this my columns
     name
0    Tim
1    Mit
2    Jason
3    Jasim
4    Sible



Expected results: 
     name
0    Tima
1    Mitb
2    Jasonc
3    Jasim
4    Siblex

Ответы [ 2 ]

1 голос
/ 08 апреля 2020
import numpy as np
import string
# create a list of characters
choice_list = list(string.ascii_lowercase)
# generate sudo random letter from the list
rand = np.random.choice(choice_list, len(df))
# append strings
df['name_new'] = df['name'].values + rand

    name name_new
0    Tim     Tima
1    Mit     Mite
2  Jason   Jasonz
3  Jasim   Jasimp
4  Sible   Siblec

обновление

import numpy as np
import string
# create a list of characters
choice_list = list(string.ascii_lowercase)

# create a rand sample of your dataframe
random_sample = df['name'].sample(3) # your sample size

# generate sudo random letter from the list    
rand = np.random.choice(choice_list, len(random_sample))

# append strings using iloc
df.iloc[random_sample.index, 0] = random_sample.values + rand


     name
0    Timy
1    Mitp
2  Jasony
3   Jasim
4   Sible
0 голосов
/ 08 апреля 2020

Я бы не использовал здесь петли; тот же результат можно получить с помощью вызова .apply() с лямбда-функцией внутри. .apply() выполняет одну и ту же функцию для каждой строки ваших данных, а лямбда-выражения позволяют создавать анонимные функции.

Если у вас есть строка, содержащая все буквы, которые вы хотите добавить, вы можете использовать choice функция из модуля random для случайного выбора буквы и добавления ее в строку.

Лямбда-функция выглядит следующим образом: lambda x: x + choice(letters). По сути, он говорит, что для любого значения x он вернет x плюс случайно выбранную букву.

Предполагая, что ваш столбец имен называется data, вот пример выше:

from random import choice

letters = "abcdefghijklmnopqrstuvwxyz"

data.apply(lambda x: x + choice(letters))
...