0

Framework:

Name cater
1 a
2 a
3 b
4 c
5 d
6 b
7 b
8 c

what I want:

array = [3.234,2.467,4.56,4.7]

Name cater average
1 a 3.234
2 a 3.234
3 b 2.467
4 c 4.56
5 d 4.7
6 b 2.467
7 b 2.467
8 c 4.56

i know this is a little weird, i just want to put array values to correct position based cater names. i def a function try to make that happen, dont know why i just add the first array in the correct postion, others still null, i am poor with python.

desertnaut
  • 57,590
  • 26
  • 140
  • 166
Leo
  • 71
  • 7

1 Answers1

0

Use .map()

import pandas as pd
import numpy as np

framework = pd.DataFrame({
    "name": np.arange(8),
    "cater": ['a','a','b','c','d','b','b','c',]
})

map_ = {'a': 3.234, 'b': 2.467, 'c': 4.56, 'd': 4.7}

framework["average"] = framework["cater"].map(map_)
print(framework)

out:

   name cater  average
0     0     a    3.234
1     1     a    3.234
2     2     b    2.467
3     3     c    4.560
4     4     d    4.700
5     5     b    2.467
6     6     b    2.467
7     7     c    4.560
Gulzar
  • 23,452
  • 27
  • 113
  • 201