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

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

從列表中查找數(shù)據(jù)框中單詞的頻率

從列表中查找數(shù)據(jù)框中單詞的頻率

動(dòng)漫人物 2023-06-27 13:34:35
import pandas as pdlist = ['apple','banana','cherries','dragonfruit','elderberry']data = {'name': ['Alpha', 'Bravo','Charlie','Delta','Echo'],             'favorite_fruit':  ['apple banana cherries', 'banana cherries dragonfruit',                           'cherries dragonfruit','dragonfruit','apple elderberry']}df = pd.DataFrame (data, columns = ['name','favorite_fruit'])list我想計(jì)算df中每個(gè)水果的出現(xiàn)頻率。預(yù)期輸出:df2Fruit       | FrequencyApple       |    2     Banana      |    2Cherries    |    3Dragonfruit |    3Elderberry  |    1該代碼df.favorite_fruit.str.split(expand=True).stack().value_counts()適用于小型 DataFrame。如果df.favorite_fruit包含數(shù)千行不同的水果組合,我如何只找到其中單詞的頻率list?
查看完整描述

3 回答

?
繁星淼淼

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

也許這是一個(gè)漏洞答案,但您可以從已經(jīng)描述的答案中過濾掉這些值。所以如果你從這個(gè)開始:


>>> df2 = df.favorite_fruit.str.split(expand=True).stack()

>>> df2


0  0          apple

   1         banana

   2       cherries

1  0         banana

   1       cherries

   2    dragonfruit

2  0       cherries

   1    dragonfruit

3  0    dragonfruit

4  0          apple

   1     elderberry

dtype: object

您可以使用isin將數(shù)據(jù)限制為目標(biāo)列表中的數(shù)據(jù):


>>> target = ['apple', 'banana']

>>> df2[df2.isin(target)].value_counts()


banana    2

apple     2

dtype: int64

或者甚至在你最初的回答之后:


>>> df.favorite_fruit.str.split(expand=True).stack().value_counts().loc[target]


apple     2

banana    2

dtype: int64

如果問題是這么多數(shù)據(jù)的expand操作stack成本很高,那么這可能不會(huì)令人滿意。但我認(rèn)為這可能比基于循環(huán)的答案更好?


查看完整回答
反對(duì) 回復(fù) 2023-06-27
?
拉丁的傳說

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

也許有點(diǎn)迂回的方式,但如果你的favorite_fruit列總是以空格分隔,這樣的方法應(yīng)該可行:


import pandas as pd


list = ['apple','banana','cherries','dragonfruit','elderberry']

data = {'name': ['Alpha', 'Bravo','Charlie','Delta','Echo'],

             'favorite_fruit':  ['apple banana cherries', 'banana cherries dragonfruit',

                           'cherries dragonfruit','dragonfruit','apple elderberry']}


df = pd.DataFrame (data, columns = ['name','favorite_fruit'])


new_df = pd.DataFrame()

data = {}


for i, row in df.iterrows():

    s = row['favorite_fruit']

    items = s.split(' ')

    for item in items:

        if item in data.keys():

            data[item].append(1)

        else:

            data[item] = [1]


for key, value in data.items():

    data[key] = sum(value)


fruit = []

frequency = []


for key, value in data.items():

    fruit.append(key)

    frequency.append(value)


new_df = pd.DataFrame({'fruit': fruit, 'frequency':frequency})

print(new_df)

這會(huì)打印出以下內(nèi)容:


         fruit  frequency

0        apple          2

1       banana          2

2     cherries          3

3  dragonfruit          3

4   elderberry          1


查看完整回答
反對(duì) 回復(fù) 2023-06-27
?
哆啦的時(shí)光機(jī)

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

拆分后嘗試使用爆炸功能。


df.favorite_fruit.str.split().explode().value_counts()


cherries       3

dragonfruit    3

banana         2

apple          2

elderberry     1

Name: favorite_fruit, dtype: int64


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

添加回答

舉報(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)