我有一个函数,该函数返回python中带有两个元素的元组。我将使用此函数在熊猫的数据框中创建两个新列。这是我现在拥有的代码
df['A','B'] = df.apply(lambda x: my_fun (X['A'], x['B'], other_arguments)[0:2], axis=1)
my_fun
返回包含5个元素的元组,而我采用前两个元素来创建新列。
但是,它仅创建一列,并将该列的值设置为my_fun
返回的元组。如何创建两列而不是一列?
答案 0 :(得分:1)
尝试
df['A'], df['B'] = df.apply(lambda x: my_fun(x['A'], x['B'], other_arguments)[:2], axis=1)
如果my_fun
返回一个包含5个元素的元组,而您只想保留前2个,则使用带有函数调用[:2]
的切片
答案 1 :(得分:1)
df[['A','B']] = df.apply(lambda x: my_fun (X['A'], x['B'], other_arguments)[0:2], axis=1).apply(pd.Series)