-2

I have this dataframe

d = {'Number': [1, 2,3,4,5,6,7], 'Letters': ["a", "d","z","f","u","p","g"]}
df = pd.DataFrame(data=d)

    Number Letters
0       1       a
1       2       d
2       3       z
3       4       f
4       5       u
5       6       p
6       7       g

And i want to get a value from Letters column based on the Number column Lets say i want to get the letter where the number is 3

What I did was

letter = df.loc[df['Number'] == 3]
dfletter = pd.DataFrame(data=letter.values, columns = ['Number', 'Letter']) 
dfletter = dfletter.drop(columns = 'Number')

which gives me what i want

    Letter
0      z

But this seems like a dumb workaround, so I am looking for a better solution

2 Answers2

1
output = df.loc[df['Number'] == 3, 'Letters']
Charles R
  • 1,621
  • 1
  • 8
  • 25
0
>>> df[df.Number == 3].Letters
2    z
Name: Letters, dtype: object

Or, if you really need a scalar value:

>>> df[df.Number == 3].Letters.values[0]
'z'
Martin Frodl
  • 667
  • 4
  • 11