创建熊猫数据框:在 numpy 上映射一个函数

我正在创建一个 pandas 数据框并使用 numpy 来模拟值。我想将随机生成的 ID 分配给熊猫中的两列,为此,我编写了一个返回字母数字 ID 的函数。


但是,使用我当前的代码,它只调用一次函数并为所有行返回相同的 id。我需要每一行的唯一 ID,因此需要有效地遍历 pandas 数据框。


理想情况下,.apply这样做,但是,我需要在创建 pandas 数据框时完成此操作。


这是我的代码:


# Generate alphanumeric lease id and property ids

def gen_ids(length):

    

    ids = ''.join(random.choices(string.ascii_letters + string.digits, k=length))


    return ids


# Create DataFrame


df = pd.DataFrame({

                   'LeaseID': gen_ids(10)

                   'PropertyID': gen_ids(10),

                   'xyz': np.random.choice(List1, 1000),  

                   'abc': np.random.choice(List2, 1000),

                 })

结果:

http://img3.mukewang.com/63eca41500010e5e02870231.jpg

慕容708150
浏览 125回答 2
2回答

交互式爱情

您需要为每个单元格调用一次 get_ids,而不是为每一列调用一次:df = pd.DataFrame({                   'LeaseID': [gen_ids(10) for _ in range(1000)],                    'PropertyID': [gen_ids(10) for _ in range(1000)],                   'xyz': np.random.choice(List1, 1000),                     'abc': np.random.choice(List2, 1000),                 })输出是:      LeaseID  PropertyID  xyz  abc0  NHQikWbUZI  phwUIn9IgZ    8   191  f6aBvrSeWe  zV0tmst212    9   152  hdTHtm7LvU  lC6uQJeHRX    8   143  FnppdLbbcq  na9dVUO3Ay    2   174  arXAq4EvzT  7dvKTclo6o    1   18...

白衣非少年

替代代码:gen_ids修改了问题中的函数以返回 a Series。# Import librariesimport randomimport stringimport pandas as pdimport numpy as np# Generate alphanumeric lease id and property idsdef gen_ids(length, len_df):    s = []    for i in range(len_df):        ids = ''.join(random.choices(string.ascii_letters + string.digits, k=length))        s.append(ids)    return s# Create DataFrameList1 = ['a','b','c','D','e']List2 = ['G','h','k','L','q']df = pd.DataFrame({                   'LeaseID': gen_ids(10, 1000),                   'PropertyID': gen_ids(10, 1000),                   'xyz': np.random.choice(List1, 1000),                     'abc': np.random.choice(List2, 1000)                 })输出print(df)        LeaseID  PropertyID xyz abc0    gxpSTdLoPH  rswWVZuBIW   a   q1    OSdR5vOA0I  gHKdcYKw5s   e   L2    WAmNQ4ieRH  ThC1Apk5YA   e   h3    BYUTgbKcbl  IKcdjvH9da   c   L4    4CNFqbu7hO  uJEWhlEufu   a   k..          ...         ...  ..  ..
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python