2016-03-28 11 views
2

Ich habe einen Datenrahmen:Drucken Sie den Rohwert einer Spalte allein, in Pandas?

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

Jetzt möchte ich George Alter retrive:

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

Aber das gibt einige zusätzliche Informationen zusammen mit dem Rohwert:

0 23 
Name: age, dtype: int64 

Wie Ich bekomme es nur zu drucken 23?

+0

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

Antwort

3

können Sie verwenden loc + values für Serie-numpy array Umwandlung und dann ersten Wert auswählen, indem [0]:

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

Oder wählen Sie einfach ersten Wert von Series mit iloc:

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

Oder wählen Artikel von iat:

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

Oder verwenden Series.item:

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

Es könnte aber auch meinen Kommentar eine Antwort machen:

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

oder

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

sollte

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