Я пытаюсь создать новый column
в pandas df
, который будет заполнен значениями в другом column
. В частности, для df ниже я хочу заполнить 1
рядом со значениями 'Home'
в Col['Location']
.
import pandas as pd
d = ({
'Day' : ['Mon','Tues','Mon','Wed','Thurs','Fri','Mon','Sat','Sun','Tues'],
'Location' : ['Home','Home','Away','Home','Home','Home','Home','Home','Home','Away'],
})
df = pd.DataFrame(data=d)
В настоящее время я делаю это через это:
m = lambda x: dict(Home='1').get(x, '')
df = df.assign(Assign=df.Location.map(m))
Однако я хочу включить Col['Day']
, чтобы изменить новые значения столбца. Я надеюсь на assign
номера в трех выделениях. Для первых трех уникальных значений в Day
я хочу пометить их все 1
. Для 4-го, 5-го, 6-го уникальных значений я хочу пометить их 2
и т. Д.
Таким образом, для Location
значения Home
df, первые 3 unique
значения в Day
равны Mon, Tues, Wed
, поэтому у них всех будет 1 рядом с ними. 4-е, 5-е, 6-е уникальные значения Thurs, Fri, Sat
, поэтому они будут иметь 2
рядом с ними. Sun
больше 6
, поэтому у него будет 3
Предполагаемый результат:
Day Location Assign
0 Mon Home 1
1 Tues Home 1
2 Mon Away
3 Wed Home 1
4 Thurs Home 2
5 Fri Home 2
6 Mon Home 1
7 Sat Home 2
8 Sun Home 3
9 Tues Away