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

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

在數(shù)據(jù)幀列上循環(huán)時(shí)?

在數(shù)據(jù)幀列上循環(huán)時(shí)?

人到中年有點(diǎn)甜 2022-08-25 13:41:16
我有一個(gè)由兩列組成的小數(shù)據(jù)幀,一列是ORG列和一列百分比列。數(shù)據(jù)幀根據(jù)百分比列從大到小排序。我想創(chuàng)建一個(gè) while 循環(huán),將百分比列中的值相加,直到達(dá)到 .80 (80%) 的值。到目前為止,我已經(jīng)嘗試過(guò):retail_pareto = 0counter = 0while retail_pareto < .80:    retail_pareto += retailerDF[counter]['RETAILER_PCT_OF_CHANGE']    counter += 1這不起作用,計(jì)數(shù)器和計(jì)數(shù)器以及retail_pareto值都保持在零,沒(méi)有真正的錯(cuò)誤消息來(lái)幫助我解決我做錯(cuò)了什么。理想情況下,我想得到一個(gè)列表,列出加起來(lái)加起來(lái)占80%的最大百分比的組織。我不確定下一步該嘗試什么。我已經(jīng)搜索了這些論壇,但還沒(méi)有在論壇中找到類(lèi)似的東西。任何建議或幫助都非常感謝。謝謝。Example Dataframe:ORG    PCTKST    0.582561ISL    0.290904BOV    0.254456BRH    0.10824GNT    0.0913631DSH    0.023441RDM    -0.0119665JBL    -0.0348893JBD    -0.071883WEG    -0.232227The output that I would expect would be something along the lines of:ORG    PCTKST    0.582561ISL    0.290904
查看完整描述

3 回答

?
一只名叫tom的貓

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

你能用這個(gè)例子來(lái)幫助你嗎?


import pandas as pd


retail_pareto = 0

orgs = []

for i,row in retailerDF.iterrows():

    if retail_pareto <= .80:

        retail_pareto += row['RETAILER_PCT_OF_CHANGE']

        orgs.append(row)

    else:

        break


new_df = pd.DataFrame(orgs)

編輯:使其更像您的示例,并添加了新的數(shù)據(jù)幀。


查看完整回答
反對(duì) 回復(fù) 2022-08-25
?
皈依舞

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

而不是循環(huán),采取一種更樂(lè)觀的方法。首先計(jì)算包含累積RETAILER_PCT_OF_CHANGE總和的附加列:


df['pct_cum'] = df.RETAILER_PCT_OF_CHANGE.cumsum()

對(duì)于您的數(shù)據(jù),結(jié)果是:


   ORG  RETAILER_PCT_OF_CHANGE   pct_cum

0  KST                0.582561  0.582561

1  ISL                0.290904  0.873465

2  BOV                0.254456  1.127921

3  BRH                0.108240  1.236161

4  GNT                0.091363  1.327524

5  DSH                0.023441  1.350965

6  RDM               -0.011967  1.338999

7  JBL               -0.034889  1.304109

8  JBD               -0.071883  1.232226

9  WEG               -0.232227  0.999999

現(xiàn)在,要打印完全包含 80% 更改的行,以超出限制的第一行結(jié)束,請(qǐng)運(yùn)行:


df[df.pct_cum.shift(1).fillna(0) < 0.8]

結(jié)果與累積的總和一起為:


   ORG  RETAILER_PCT_OF_CHANGE   pct_cum

0  KST                0.582561  0.582561

1  ISL                0.290904  0.873465


查看完整回答
反對(duì) 回復(fù) 2022-08-25
?
紅糖糍粑

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

用:


df_filtered = df.loc[df['PCT'].shift(fill_value=0).cumsum().le(0.80),:]

#if you don't want include where cumsum is greater than 0,80

#df_filtered = df.loc[df['PCT'].cumsum().le(0.80),:] 

print(df_filtered)

   ORG       PCT

0  KST  0.582561

1  ISL  0.290904


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

添加回答

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