问题描述
我正在尝试使用apply函数将列添加到python pandas df中。 但是,要添加的列数取决于apply函数中使用的函数的输出。
示例代码:
number_of_columns_to_be_added = 2
def add_columns(number_of_columns_to_be_added):
df['n1'],df['n2'] = zip(*df['input'].apply(lambda x : do_something(x, number_of_columns_to_be_added)))
关于如何在= zip( ...
之前定义丑陋的列部分(df['n1'], ..., df['n696969'])
任何想法= zip( ...
编程的部分?
1楼
我猜测zip
的输出是一个元组,所以你可以试试这个:
temp = zip(*df['input'].apply(lambda x : do_something(x, number_of_columns_to_be_added)))
for i, value in enumerate(temp, 1):
key = 'n'+str(i)
df[key] = value
temp
将保存所有条目,然后iterate
temp
以使用您的特定键将值分配给您的dict。
希望这符合你原来的想法。