#python #pandas #numpy
#python #pandas #numpy
Вопрос:
Я изучаю лямбда-функцию в Panda и пытаюсь поиграть с ней, но почему-то застрял на действительно простых приемах, я считаю, что я действительно близок.
Фрейм данных выглядит следующим образом
A B
0 1 2
1 2 3
2 3 4
Я пытаюсь получить следующий фрейм данных:
A B C
0 1 2 3
1 2 3 5
2 3 4 8
newSumColumn = lambda x: x['A'] / x['B']
df['C'] = df.apply(newSumColumn)
Однако, когда я это делаю, я столкнулся с ('A', 'occurred at index Unnamed: 0')
Это кажется простой задачей, но на данный момент я бьюсь головой о стену
Ответ №1:
У вас есть одна опечатка, и вам нужно добавить axis=1
# it is B not b
newSumColumn = lambda x: x['A'] / x['B']
#should add axis=1
df.apply(newSumColumn,axis = 1)
Out[1018]:
0 0.500000
1 0.666667
2 0.750000
dtype: float64
Ответ №2:
По умолчанию функция применяется вдоль столбца. Чтобы применить вдоль строки, вы можете попробовать:
newSumColumn = lambda x: x['A'] / x['b']
df['C'] = df.apply(newSumColumn, axis=1)