2 回答

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ā)生了什么

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
添加回答
舉報