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

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

在 Python 中使用 .apply() 時(shí)如何獲取行的索引?

在 Python 中使用 .apply() 時(shí)如何獲取行的索引?

慕的地8271018 2023-01-04 16:21:38
我有一個(gè)包含列表行的數(shù)據(jù)框,如下所示:In [11]: import pandas as pdIn [12]: str1 = 'The weight of a apple'         str2 = 'Apple MacBook release date news and rumors'         list1 = ['DET', 'NOUN', 'ADP', 'DET', 'NOUN']         list2 = ['PROPN', 'NOUN', 'NOUN', 'NOUN', 'CCONJ', 'PROPN']         df = pd.DataFrame(             {                 'col1': [str1, str2],                 'col2': [list1, list2]                     }         )         dfOut[12]:                                          col1                                        col2  0                       The weight of a apple                 [DET, NOUN, ADP, DET, NOUN]1  Apple MacBook release date news and rumors     [PROPN, NOUN, NOUN, NOUN, CCONJ, PROPN]我正在使用用戶定義的函數(shù)來(lái)檢查col1中關(guān)鍵字“apple”的出現(xiàn)并通過(guò)使用 Pandas 中的 .apply() 獲取其位置值。然后我試圖從col2匹配位置值的列表中獲取項(xiàng)目。但是,當(dāng) .apply() 函數(shù)循環(huán)遍歷我的用戶定義函數(shù)時(shí),我不知道如何獲取當(dāng)前行的索引。這就是我想要做的。In [14]: # Find occurance of 'apple' keyword         def find_apple(text):           keyword = 'apple'           words = text.lower().split(' ')           if keyword in words:                 word_index = words.index(keyword)             value = df.col2[curr_row_index][word_index]             print(value)           else:             print('None')             # Function call using .apply()          df['col3'] = df['col1'].apply(find_apple)我想知道如何獲得curr_row_index的值,以便在數(shù)據(jù)幀的行上獲得可迭代的值。我試過(guò)使用 df.index 和 row.name 無(wú)濟(jì)于事。也許有人可以解釋我做錯(cuò)了什么。PS 我是新來(lái)的,這是我第一次提出問(wèn)題,因此對(duì)于任何遺漏的信息提前致歉。
查看完整描述

1 回答

?
慕蓋茨4494581

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

重構(gòu)您的函數(shù)以對(duì)行進(jìn)行操作,然后axis=1在調(diào)用應(yīng)用程序時(shí)使用:


def f(row):

    #print(row.name,row.col1,row.col2)

    value = None

    if 'apple' in row.col1.lower():

        idx = row.col1.lower().split().index('apple')

#        print(row.col2[idx])

        value = row.col2[idx]

    return value


df['col3' ] = df.apply(f,axis=1)

使用您的示例 DataFrame:


In [34]: print(df.to_string())

                                         col1                                     col2   col3

0                       The weight of a apple              [DET, NOUN, ADP, DET, NOUN]   NOUN

1  Apple MacBook release date news and rumors  [PROPN, NOUN, NOUN, NOUN, CCONJ, PROPN]  PROPN


In [35]: 


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

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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