2016-03-28 19 views
2

我有一個數據幀:在pandas中單獨打印一列的原始值?

df = pd.DataFrame([ { 'name': 'george', 'age': 23 }, {'name': 'anna', 'age': 26}]) 

現在我想以檢索喬治的年齡:

df[df.name == 'george'].age 

但這輸出與原始值以及一些額外的信息:

0 23 
Name: age, dtype: int64 

怎麼辦我只是要打印23

+0

'int(df [df.name =='george']。age)'? 'df [df.name =='george']。age.values [0]'? – jDo

回答

3

您可以使用loc + values轉換Serienumpy array然後[0]選擇第一個值:

print (df.loc[df.name == 'george', 'age'].values) 
[23] 
print (df.loc[df.name == 'george', 'age'].values[0]) 
23 

或者乾脆選擇Series第一個值與iloc

print (df.loc[df.name == 'george', 'age'].iloc[0]) 
23 

或者選擇第一item by iat

print (df.loc[df.name == 'george', 'age'].iat[0]) 
23 

或者使用Series.item

print (df.loc[df.name == 'george', 'age'].item()) 
23 
1

還不如讓我的評論答案:

df[df.name == 'george'].age.values[0] 

int(df[df.name == 'george'].age) 

應該工作

0
df = [ { 'name': 'george', 'age': 23 }, {'name': 'anna', 'age': 26}] 
k = [x['age'] for x in df if x['name'] == 'george'] 
print k