Создание новых поддельных данных с новыми первичными ключами из существующего фрейма данных python

#python #pandas

Вопрос:

У меня есть фрейм данных следующим образом:

 df1 = pd.DataFrame({'id': ['1a', '2b', '3c'], 'name': ['Anna', 'Peter', 'John'], 'year': [1999, 2001, 1993]})
 

Я хочу создать новые данные путем случайной перестановки значений в каждом столбце, но для столбца id мне также нужно добавить случайную букву в конце значений, а затем добавить новые данные к существующим df1 следующим образом:

 df1 = pd.DataFrame({'id': ['1a', '2b', '3c', '2by', '1ao', '1az', '3cc'], 'name': ['Anna', 'Peter', 'John', 'John', 'Peter', 'Anna', 'Anna'], 'year': [1999, 2001, 1993, 1999, 1999, 2001, 2001]})
 

Кто-нибудь может мне помочь, пожалуйста? Большое вам спасибо.

Комментарии:

1. хейя, не могли бы вы сделать заголовок вопроса немного более описательным, пожалуйста? это может помочь другим, которые сами сталкиваются с подобным вопросом и должны найти этот

2. Надеюсь, что новое название поможет 🙂

Ответ №1:

Используйте DataFrame.sample и добавляйте случайные буквы с помощью numpy.random.choice :

 import string

N = 5
df2 = (df1.sample(n=N, replace=True)
          .assign(id =lambda x:x['id'] np.random.choice(list(string.ascii_letters),size=N)))
df1 = df1.append(df2, ignore_index=True)
print (df1)
    id   name  year
0   1a   Anna  1999
1   2b  Peter  2001
2   3c   John  1993
3  1aY   Anna  1999
4  3cp   John  1993
5  3cE   John  1993
6  2bz  Peter  2001
7  3cu   John  1993
 

Комментарии:

1. Это работает. Большое вам спасибо 🙂