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

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

將多個(gè)條件應(yīng)用于 python 數(shù)據(jù)框

將多個(gè)條件應(yīng)用于 python 數(shù)據(jù)框

精慕HU 2023-09-05 15:13:56
我有一些在線任務(wù)的輸出,我需要將其整理成可用的評(píng)分形式,這需要多個(gè)條件才能正確整理。我嘗試使用 if 和 else 語句,但我很難以這種方式滿足所需的所有條件。所需數(shù)據(jù)和條件的描述 - 在第一列中,有與該人的響應(yīng)相對(duì)應(yīng)的三個(gè)可能值:“是”、“否”或“NR”(表示尚未給出響應(yīng))。第二列是一種計(jì)數(shù)器,應(yīng)該按順序從 1 到 5 運(yùn)行,但如果用戶按住按鍵時(shí)間過長,它會(huì)重復(fù)一個(gè)值。因此,對(duì)于第二列中的每個(gè)計(jì)數(shù),我希望第一列中有一個(gè)相應(yīng)的響應(yīng),這應(yīng)該是針對(duì)該計(jì)數(shù)給出的第一個(gè)響應(yīng)(“是”或“否”)。如果在整個(gè)計(jì)數(shù)期間沒有給出響應(yīng),則應(yīng)保持為“NR”。然后計(jì)數(shù)再次從 1 到 5 重復(fù)。例如,這個(gè)輸入數(shù)據(jù):   response  count0       yes      11       yes      12       yes      13        no      14       yes      15        no      26        no      27        no      28        NR      39        NR      310       no      311       NR      312       NR      413       NR      414       NR      415      yes      516      yes      517       NR      118       NR      119       NR      220      yes      321      yes      322      yes      323       no      424      yes      425       no      5應(yīng)該減少到這樣:  response  count0      yes      11       no      22       no      33       NR      44      yes      55       NR      16       NR      27      yes      38       no      49       no      5這是一個(gè)有點(diǎn)令人困惑的問題,到目前為止,我還沒有找到應(yīng)用于數(shù)組的條件組合或 if/else 語句來給我想要的結(jié)果。任何幫助或想法將不勝感激!輸入數(shù)據(jù)的源代碼:response = ['yes','yes','yes','no','yes','no','no','no','NR','NR','no','NR','NR','NR','NR','yes','yes','NR','NR','NR','yes','yes','yes','no','yes','no']count = [1,1,1,1,1,2,2,2,3,3,3,3,4,4,4,5,5,1,1,2,3,3,3,4,4,5]data_dict = {'response': response,            'count':count}data = pd.DataFrame(data_dict)
查看完整描述

1 回答

?
呼喚遠(yuǎn)方

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

嘗試這個(gè):


df.groupby(['count', (df['count'] != df['count'].shift()).cumsum()])['response']\

  .apply(lambda x: 'NR' if (x.nunique()==1) & (x == 'NR').all() else x.loc[x!='NR'].iloc[0])\

  .sort_index(level=1).reset_index(level=1, drop=True)

輸出:


count

1    yes

2     no

3     no

4     NR

5    yes

1     NR

2     NR

3    yes

4     no

5     no

Name: response, dtype: object

細(xì)節(jié):


讓我們首先生成一個(gè)序列來獲取重復(fù)組:


(df['count'] != df['count'].shift()).cumsum()

使用這個(gè)系列以及“計(jì)數(shù)”,我們可以創(chuàng)建響應(yīng)組,


如果唯一響應(yīng)的計(jì)數(shù)等于 1 并且該響應(yīng)為“NR”,則為該組返回“NR”。否則,使用 返回第一個(gè)不是“NR”的響應(yīng)x.loc[X!='NR'].iloc[0]。


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

添加回答

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