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

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

從具有條件的數(shù)據(jù)框中選擇列

從具有條件的數(shù)據(jù)框中選擇列

明月笑刀無情 2023-02-22 17:19:57
我今天在學(xué)習(xí)使用pandas library,遇到了這個我無法完全理解的錯誤。這是我使用的數(shù)據(jù)框。      name   kda  combat  econ0   Austin  1.45   270.0    678   Austin  1.70   300.0    904   Justin  1.36   230.0    5011  Justin  1.50   270.0    601    Kevin  1.40   230.0    556    Kevin  1.00   100.0   1203     Matt  1.00   180.0    659     Matt  1.40   280.0    702     Nick  2.10   360.0    877     Nick  2.50   340.0    885     Will  1.20   185.0    4510    Will  1.60   260.0    75我試圖獲得平均戰(zhàn)斗分?jǐn)?shù)大于 250 的 name 和 kda 列,我試圖通過這樣做來實(shí)現(xiàn)temp = df.groupby('name').mean()temp = temp[temp['combat'] > 250]print(temp['name', 'kda'])但它返回了這個關(guān)鍵錯誤KeyError: "['name'] not in index"有人可以解釋為什么我不能從這些臨時數(shù)據(jù)框中獲取列嗎?還是我的代碼做錯了什么?幸運(yùn)的是我的朋友幫助了我,我可以通過temp = df.loc[df['combat'] > 250, ['name','kda']]print(temp.groupby('name').mean())這是給的訣竅          kdaname         Austin  1.575Justin  1.500Matt    1.400Nick    2.300Will    1.600先感謝您
查看完整描述

2 回答

?
當(dāng)年話下

TA貢獻(xiàn)1890條經(jīng)驗(yàn) 獲得超9個贊

當(dāng)您執(zhí)行 a 時groupby("col_name"),默認(rèn)行為是 pandas 將 the 設(shè)置col_name為索引


在您的情況下,您可以將名稱設(shè)置為數(shù)據(jù)幀索引


您可以使用


temp = df.groupby('name').mean()

temp = temp[temp['combat'] > 250]

print(temp['kda'])

得到你想要的結(jié)果(它會返回一個系列)


另一種選擇是as_index=False與 groupby 一起使用


groupby('col_name', as_index=False)


這將返回一個以“名稱”作為列的數(shù)據(jù)框,您的第一個解決方案將起作用


看看中間步驟,你就會明白發(fā)生了什么


查看完整回答
反對 回復(fù) 2023-02-22
?
皈依舞

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

替代答案。


.reset_index().groupby()可以在下面的代碼中使用。此外,在打印時,如果需要打印兩列以上,您可能需要添加[[]]而不是。[]


# Import libraries

import pandas as pd


# Create DataFrame

df = pd.DataFrame({

    'name': ['Austin','Austin','Justin','Justin','Kevin','Kevin',

            'Matt','Matt','Nick','Nick','Will','Will'],

    'kda': [1.45,1.70,1.36,1.50,1.40,1.40,1.0,1.30,2.10,2.50,1.20,1.60],

    'combat':[270.0,300.0,230.0,270.0,230.0,100.0,180,280,360,340,185,260],

    'econ':[67,90,50,60,55,120,65,70,87,88,45,75]

})


# Groupby (copy pasted code from question and modified)

temp = df.groupby('name').mean().reset_index()

temp = temp[temp['combat'] > 250]

print(temp[['name', 'kda']])

輸出


     name    kda

0  Austin  1.575

4    Nick  2.300


查看完整回答
反對 回復(fù) 2023-02-22
  • 2 回答
  • 0 關(guān)注
  • 141 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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