第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

在帶有字符串和列表列的熊貓列上運(yùn)行一個(gè)函數(shù)

在帶有字符串和列表列的熊貓列上運(yùn)行一個(gè)函數(shù)

明月笑刀無情 2023-06-20 14:00:25
我正在嘗試在下面的“父”列和“子”列列表中的每個(gè)元素上運(yùn)行幾段代碼。我的目標(biāo)結(jié)果在“ resultsX ”列中:第一個(gè)代碼(顯示在 results1 列中)片段只需要兩個(gè)字符串并獲取每個(gè)字符串中的唯一字符總數(shù):>>> len(set('max' + 'andi'))>>> 6第二段代碼(顯示在 results2 列中)計(jì)算兩個(gè)字符串中相同位置的字符數(shù):>>> sum(1 if c1 == c2 else 0 for c1, c2 in zip('maxwell', ' axwell'))>>> 6我想在“parent”列和“children”列中的每個(gè)元素上運(yùn)行這兩段代碼,分別獲取“ results1 和 results2”列中的內(nèi)容:parent           children                       results1                                     results20   MAX          ['MAX', 'amx', 'akd']          [('MAX',3),('amx',3),('akd',5)]          [('MAX',3),('amx',0),('akd',0)]1   Sam          ['Sam','sammy','samsam']       [('Sam',3),('sammy',4), ('samsam',3)]      [('Sam',3),('sammy',3), ('samsam',3)]2   Larry        ['lar','lair','larrylamo']     [('lar',4),('lair',5), ('larrylamo',6)]  [('lar',3),('lair',3), ('larrylamo',5)]我在下面嘗試過這段代碼,但運(yùn)行時(shí)出現(xiàn)錯(cuò)誤:def total_chars(reference, value_list):    chars = []    for val in value_list:        totalChars = len(set(reference + val))        chars.append(val, reference)            return totalCharsdf.agg(lambda x: total_chars(df.parent,df.children), axis=1)>>> ValueError: operands could not be broadcast together with shapes (10000,) (4,) 有任何想法嗎?
查看完整描述

2 回答

?
慕容森

TA貢獻(xiàn)1853條經(jīng)驗(yàn) 獲得超18個(gè)贊

我相信你需要


def cust_func(row):

    results1 = []

    results2 = []

    p = row['parent'].lower()

    for i in row['children']:

        t = i.lower()

        results1.append((i, len(set(t + p))))

        results2.append((i, sum(int(k==v) for k,v in zip(t, p))))


    return pd.Series([results1, results2])

        


df = pd.DataFrame({"parent": ['Max', 'Sam', 'Larry'], "children": [['MAX', 'amx', 'akd'], ['Sam','sammy','samsam'], ['lar','lair','larrylamo']]})

df[['results1', 'results2']]  = df.apply(cust_func, axis=1)

print(df[['results1', 'results2']])

輸出:


                                results1                               results2

0         [(MAX, 3), (amx, 3), (akd, 5)]         [(MAX, 3), (amx, 1), (akd, 0)]

1    [(Sam, 3), (sammy, 4), (samsam, 3)]    [(Sam, 3), (sammy, 3), (samsam, 3)]

2  [(lar, 4), (lair, 5), (larrylamo, 6)]  [(lar, 3), (lair, 3), (larrylamo, 5)]


查看完整回答
反對(duì) 回復(fù) 2023-06-20
?
湖上湖

TA貢獻(xiàn)2003條經(jīng)驗(yàn) 獲得超2個(gè)贊

沒有循環(huán)數(shù)據(jù)幀。只是一個(gè)用于位置明智比較的功能


df = pd.DataFrame([{'parent': 'MAX', 'children': ['MAX', 'amx', 'akd']},

 {'parent': 'Sam', 'children': ['Sam', 'sammy', 'samsam']},

 {'parent': 'Larry', 'children': ['lar', 'lair', 'larrylamo']}])


def placewise(a1, a2):

    s = 0

    for i in range(min(len(a1), len(a2))):

        if a1[i] == a2[i]: s += 1

    return s


df = (df.explode("children")

 .assign(

     results1=lambda x: x.apply(lambda r: (r["children"], 

                                           len(np.unique(np.concatenate([list(r["parent"].upper()), 

                                                                         list(r["children"].upper())])))

                                          ), axis=1),

     results2=lambda x: x.apply(lambda r: (r["children"], placewise(r["parent"].upper(), 

                                                                    r["children"].upper()

                                                                   )

                                          ), axis=1),

 )

 .groupby("parent", as_index=False).agg({"children":lambda x: list(x),

                                         "results1":lambda x: list(x),

                                         "results2":lambda x: list(x)})

 

)


print(df.to_string(index=False))

輸出


parent                children                               results1                               results2

 Larry  [lar, lair, larrylamo]  [(lar, 4), (lair, 5), (larrylamo, 6)]  [(lar, 3), (lair, 3), (larrylamo, 5)]

   MAX         [MAX, amx, akd]         [(MAX, 3), (amx, 3), (akd, 5)]         [(MAX, 3), (amx, 1), (akd, 0)]

   Sam    [Sam, sammy, samsam]    [(Sam, 3), (sammy, 4), (samsam, 3)]    [(Sam, 3), (sammy, 3), (samsam, 3)]



查看完整回答
反對(duì) 回復(fù) 2023-06-20
  • 2 回答
  • 0 關(guān)注
  • 180 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)