我正在尝试使用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)))
有关如何以编程方式在(df['n1'], ..., df['n696969'])
部分之前定义丑陋的列部分= zip( ...
的任何想法吗?
答案 0 :(得分:0)
我猜测mes = 'Hello!'
bot.send_message(chat_id, mes)
mes = 'What is your name?'
bot.send_message(chat_id, mes)
user.step = 'input_name'
user.save()
return HttpResponse('OK')
if user.step == 'input_name':
user.name = text
mes = 'What is your city?'
bot.send_message(chat_id, mes)
user.step = 'input_city'
user.save()
return HttpResponse('OK')
if user.step == 'input_city':
user.city = text
mes = 'What is your birthday YYYY-MM-DD.'
bot.send_message(chat_id, mes)
user.step = 'input_date'
user.save()
return HttpResponse('OK')
if user.step == 'input_date':
user.date_wedding = text
mes = 'What is your photo?'
bot.send_message(chat_id, mes)
user.step = 'input_photo'
user.save()
return HttpResponse('OK')
if user.step == 'input_photo':
updates = bot.get_updates()
user.photo = ([u.message.photo for u in updates if u.message.photo])
# user.photo = file_id
user.save()
return HttpResponse('OK')
的输出是一个元组,所以你可以试试这个:
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
以使用您的特定键将值分配给您的dict。希望这符合你原来的想法。