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

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

檢查行中的 TRUE、FALSE 值,在另一個數(shù)據(jù)框中查找匹配索引,然后對 pandas 值求和

檢查行中的 TRUE、FALSE 值,在另一個數(shù)據(jù)框中查找匹配索引,然后對 pandas 值求和

動漫人物 2023-12-26 15:32:52
我有 2 個數(shù)據(jù)框df = pd.DataFrame({'Question': ['Q1', 'Q2', 'Q3'], 'Category' : ["Problem", "Problem", "Problem"], 'ScoreTruth' : [2, 9, 3], 'ScoreFalse' :[0,0,0]} )? ? Question? ? Category? ? ScoreTruth? ScoreFalse0? ?Q1? ? ? ? ? Problem? ? ? ? ? 2? ? ? ? ? 01? ?Q2? ? ? ? ? Problem? ? ? ? ? 9? ? ? ? ? 02? ?Q3? ? ? ? ? Problem? ? ? ? ? 3? ? ? ? ? 0dfTotal = pd.DataFrame({'Name' : ['person1', 'person2','person3'], "Q1": ["TRUE","TRUE","TRUE"] ,"Q2" : ["TRUE","FALSE",np.nan], "Q3": [np.nan,"FALSE",np.nan]})?? ? ? ?Name? ? ? Q1? ? ? Q2? ? ? Q30? ? ?person1? ?TRUE? ? TRUE? ? ?NaN1? ? ?person2? ?TRUE? ? FALSE? ?FALSE2? ? ?person3? ?TRUE? ? ?NaN? ? ?NaN我想要兩個dfTotal基于分數(shù)的新列df“Total Applicable”-> 每dfTotal行中所有得分值 (TRUE/FALSE) 的總和(忽略 NaN 值得分)以及基于dfQ1、Q2、Q3 的匹配值,即 row0 = 2+9 = 11、row1 = 2+ 9+3 = 14,行2 = 2“Total Truth” -> 一行中所有 TRUE 得分值的總和(從 中提取的得分df)我設(shè)法得到了第二個有點完整的結(jié)果,dfTotal['Total Truth'] = [x for x in np.sum(dfTotal.values == "TRUE", 1)]但這并沒有考慮到“ScoreTruth”值df? ? ? ?Name? ? ? Q1? ? ? Q2? ? ? Q3? ? ? Total Truth0? ? ?person1? ?TRUE? ? TRUE? ? ?NaN? ? ? ? ? 21? ? ?person2? ?TRUE? ? FALSE? ?FALSE? ? ? ? ?12? ? ?person3? ?TRUE? ? ?NaN? ? ?NaN? ? ? ? ? 1我如何考慮將dfTotal "Q1", "Q2", "Q3"值為“TRUE”的列與 Q1、Q2、Q3 中各自的索引相匹配的 ScoreTruth 值df,然后提取這些分數(shù)并對它們求和?我想要這樣的輸出? ? ? ?Name? ? ? Q1? ? ? Q2? ? ? Q3? ? ? Total Applicable? ? ? Total Truth0? ? ?person1? ?TRUE? ? TRUE? ? ?NaN? ? ? ? ? ? 11? ? ? ? ? ? ? ? ? ?111? ? ?person2? ?TRUE? ? FALSE? ?FALSE? ? ? ? ? ?14? ? ? ? ? ? ? ? ? ?22? ? ?person3? ?TRUE? ? ?NaN? ? ?NaN? ? ? ? ? ? 2? ? ? ? ? ? ? ? ? ? 2np.where()唯一的區(qū)別是我想對行值進行求和,而不是將 TRUE/FALSE 值設(shè)置為分數(shù)。
查看完整描述

1 回答

?
弒天下

TA貢獻1818條經(jīng)驗 獲得超8個贊

您基本上正在研究矩陣乘法,您希望將問題的分數(shù)與 或非 相'TRUE'匹配NaN。所以:


scores = df.set_index('Question')['ScoreTruth']


questions = dfTotal[['Q1','Q2','Q3']]


dfTotal['Total Applicable'] = questions.notna() @ scores

dfTotal['Total Truth'] = questions.eq('TRUE') @ scores

輸出:


      Name    Q1     Q2     Q3  Total Applicable  Total Truth

0  person1  TRUE   TRUE    NaN                11           11

1  person2  TRUE  FALSE  FALSE                14            2

2  person3  TRUE    NaN    NaN                 2            2


查看完整回答
反對 回復(fù) 2023-12-26
  • 1 回答
  • 0 關(guān)注
  • 134 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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