2016-04-18 13 views
24

Sono in procinto di rimanere bloccato sul valore di estrazione di una variabile condizionata su un'altra variabile. Ad esempio, il seguente dataframe:estrarre il valore della colonna in base a un'altra colonna pda dataframe

A B p1 1 p1 2 p3 3 p2 4

Come posso ottenere il valore di A quando B=3? Ogni volta che estraevo il valore di A, ottenevo un oggetto, non una stringa.

+0

vedo, dovrebbe aggiungere 'item()' alla fine. –

risposta

34

Si potrebbe utilizzare loc per ottenere serie che soddisfare la sua condizione e poi iloc per ottenere il primo elemento:

In [2]: df 
Out[2]: 
    A B 
0 p1 1 
1 p1 2 
2 p3 3 
3 p2 4 

In [3]: df.loc[df['B'] == 3, 'A'] 
Out[3]: 
2 p3 
Name: A, dtype: object 

In [4]: df.loc[df['B'] == 3, 'A'].iloc[0] 
Out[4]: 'p3' 
+3

Grazie per il vostro aiuto. 'df.loc [df ['B'] == 3, 'A']. item()' funziona anche per me. –

+0

df.loc [df ['B'] == 3, 'A'] [0] funziona anche – Myk

3

df[df['B']==3]['A'], assumendo df è il tuo pandas.DataFrame.

4

Si può provare query, che è meno di battitura:

df.query('B==3')['A']