-2

Example dataframe:

column_name a b c d
a 5 3 1 7
b 3 2 1 10
d 4 5 33 14

I want result to look like:

value
5
2
14

What's the best way to do this?

zachvac
  • 518
  • 1
  • 4
  • 15

1 Answers1

0

Pandas' docs has a section for looking up data in this way : link:

# Get positions and unique values for `column_name`:
idx, cols = pd.factorize(df.column_name)

#Select the columns via a reindex:
result = df.reindex(cols, axis = 1)

# dump down into numpy to select the values:
result = result.to_numpy()[np.arange(len(df)), idx]

df.assign(result = result)
Out[203]:
  column_name  a  b   c   d  result
0           a  5  3   1   7       5
1           b  3  2   1  10       2
2           d  4  5  33  14      14
sammywemmy
  • 22,944
  • 4
  • 14
  • 28