Это, наверное, глупый вопрос, но я пытался какое-то время, и я не могу заставить его работать.Pandas Apply возвращает матрицу вместо одного столбца
У меня есть dataframe:
df1 = pd.DataFrame({'Type': ['A','A', 'B', 'F', 'C', 'G', 'A', 'E'], 'Other': [999., 999., 999., 999., 999., 999., 999., 999.]})
теперь я хочу, чтобы создать новый столбец, основанный на колонке Type
. Для этого у меня есть второй фрейм данных:
df2 = pd.DataFrame({'Type':['A','B','C','D','E','F', 'G'],'Value':[1, 1, 2, 3, 4, 4, 5]})
, который я использую в качестве справочной таблицы.
Когда я пытаюсь что-то вроде:
df1.apply(lambda x: df2.Value[df2.Type == x['Type']],axis=1)
Я получаю матрицу вместо одного столбца:
Out[21]:
0 1 2 4 5 6
0 1 NaN NaN NaN NaN NaN
1 1 NaN NaN NaN NaN NaN
2 NaN 1 NaN NaN NaN NaN
3 NaN NaN NaN NaN 4 NaN
4 NaN NaN 2 NaN NaN NaN
5 NaN NaN NaN NaN NaN 5
6 1 NaN NaN NaN NaN NaN
7 NaN NaN NaN 4 NaN NaN
То, что я хочу, однако, заключается в следующем:
0
0 1
1 1
2 1
3 4
4 2
5 5
6 1
7 4
Что утра Я делаю неправильно?
Отлично, спасибо большое! – petetheat
Сделано! еще раз спасибо – petetheat