Dataframe Apply method to return multiple elements (series)

前端 未结 4 439
粉色の甜心
粉色の甜心 2021-01-19 21:15
import pandas as pd

Let\'s say I have a dataframe like so:

df = pd.DataFrame({\"a\":range(4),\"b\":range(1,5)})
         


        
4条回答
  •  甜味超标
    2021-01-19 22:02

    UPDATE

    Updated for version 0.23 - using result_type='broadcast' for further details refer to documentation

    Redefine your function like this:

    def divideAndMultiply(x,y):
        return [x/y, x*y]
    

    Then do this:

    df[['e','f']] = df.apply(lambda x: divideAndMultiply(x["a"], 2), axis=1, result_type='broadcast')
    

    You shall get the desired result:

    In [118]: df
    Out[118]:
       a  b  e  f
    0  0  1  0  0
    1  1  2  0  2
    2  2  3  1  4
    3  3  4  1  6
    

提交回复
热议问题