#python-3.x #pandas
#python-3.x #панды
Вопрос:
У меня есть DataFrame:
Num
1
2
3
def foo(x):
return x**2, x**3
Когда я сделал df['sq','cube'] = df['num'].apply(foo)
Он создает один столбец, как показано ниже:
num (sq,cub)
1 (1,1)
2 (4,8)
3 (9,27)
Я хочу, чтобы эти столбцы были разделены их значениями
num sq cub
1 1 1
2 4 8
3 9 27
Как я могу этого добиться …?
Ответ №1:
obj = df['num'].apply(foo)
df['sq'] = obj.str[0]
df['cube'] = obj.str[1]
Комментарии:
1. в качестве альтернативы, просто сделайте —
df['sq'] = df['num']**2
amp;df['sq'] = df['num']**2
amp;df['cube'] = df['num']**3
. В этом случае нет необходимости применять.2. @sharathnatraj Спасибо за ответ. Мой приведенный выше пример — это просто симуляция моей реальной проблемы. Таким образом, принятый ответ является решением этой проблемы.