Как создать фрейм данных с симулированными данными в python - PullRequest
0 голосов
/ 15 апреля 2020

У меня есть пример схемы, которая состоит из 12 столбцов, и каждый столбец имеет определенную категорию. Теперь мне нужно смоделировать эти данные в кадре данных около 1000 строк. Как я go об этом?

Я использовал приведенный ниже код для генерации данных для каждого столбца

      Location = ['USA','India,'Prague','Berlin','Dubai','Indonesia','Vienna']
      Location = random.choice(Location)

      Age = ['Under 18','Between 18 and 64','65 and older']
      Age = random.choice(Age)

      Gender = ['Female','Male','Other']
      Gender = random.choice(Gender)

и т. Д.

Мне нужен вывод, как показано ниже

       Location        Age          Gender
       Dubai           below 18     Female
       India           65 and older Male

. , , .

Ответы [ 2 ]

3 голосов
/ 15 апреля 2020

Вы можете создать каждый столбец один за другим, используя np.random.choice:

df = pd.DataFrame()                                                                                                                                                                     
N = 1000                                                                                                                                                                                
df["Location"] = np.random.choice(Location, size=N)                                                                                                                                     
df["Age"] = np.random.choice(Age, size=N)                                                                                                                                               
df["Gender"] = np.random.choice(Gender, size=N)  

Или сделайте это, используя понимание списка:

column_to_choice = {"Location": Location, "Age": Age, "Gender": Gender}

df = pd.DataFrame(
    [np.random.choice(column_to_choice[c], 100) for c in column_to_choice]
).T

df.columns = list(column_to_choice.keys())

Результат:

>>> print(df.head())                                                                                                                                                                              
    Location                Age  Gender
0      India       65 and older  Female
1     Berlin  Between 18 and 64  Female
2        USA  Between 18 and 64    Male
3  Indonesia           Under 18    Male
4      Dubai           Under 18   Other
2 голосов
/ 15 апреля 2020

Вы можете создать для l oop количество строк, которое вы хотите в вашем кадре данных, а затем создать список словаря. Используйте список словаря для генерации кадра данных.

In [16]: for i in range(5):
    ...:     k={}
    ...:     loc = random.choice(Location)
    ...:     age = random.choice(Age)
    ...:     gen = random.choice(Gender)
    ...:     k = {'Location':loc,'Age':age, 'Gender':gen}
    ...:     list2.append(k)
    ...:

In [17]: import pandas as pd

In [18]: df = pd.DataFrame(list2)

In [19]: df
Out[19]:
                 Age Gender   Location
0  Between 18 and 64  Other     Berlin
1       65 and older  Other        USA
2       65 and older   Male      Dubai
3  Between 18 and 64   Male      Dubai
4  Between 18 and 64   Male  Indonesia
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...