此问题与以下线程有关:
How would you zip an unknown number of lists in Python?
我正在使用一个dataframe(合并的数据),它有两个字段(“campaignName”和“creativeName”),我想在这两个字段中生成一个值的成对组合列表。根据上面的指导,以下是我认为可以做到的代码:
print varlist
print merged_data[varlist]
combo = zip(*merged_data[varlist])
print combo
combo2 = zip(merged_data[varlist[0]], merged_data[varlist[1]])
print combo2
但是下面是两个zip命令的结果(我原以为会产生一个相同的元组列表):
['campaigname','creativeName']
campaignName creativeName
0 MMedia Whatsapp 12-24-14 Pic1-Angle1-300x250
1 MMedia Whatsapp 12-24-14 Pic1-Angle1-300x250
...
89 MMedia Whatsapp 12-25-14 Pic4-Angle1-300x250
[90 rows x 2 columns]
[('c', 'c'), ('a', 'r'), ('m', 'e'), ('p', 'a'), ('a', 't'), ('i', 'i'), ('g', 'v'), ('n', 'e'), ('N', 'N'), ('a', 'a'), ('m', 'm'), ('e', 'e')]
[('MMedia Whatsapp 12-24-14', 'Pic1-Angle1-300x250'), ('MMedia Whatsapp 12-24-14', 'Pic1-Angle1-300x250'), ('MMedia Whatsapp 12-24-14', 'Pic1-Angle1-300x250'), ..., ('MMedia Whatsapp 12-25-14', 'Pic4-Angle1-300x250')]
知道怎么回事吗?显然,在第一种情况下,它将['campaignName','creativeName']视为一个字符串,在第二种情况下,它将它们视为数据帧中的字段,然后查看其中的值。你知道吗
感谢您的帮助。提前谢谢!你知道吗
这两种说法其实并不相同:
combo1=zip(*combo = zip(*merged_data[varlist])
相当于:
combo1=zip(merged_data[varlist][0],merged_data[varlist][1],merged_data[varlist][2]....)
而不是
combo1=zip(merged_data[varlist[0]],merged_data[varlist[1]])
(注意方括号的位置)
字符串只是Python的序列,所以它可以为您解压它们
我倾向于认为zip(*args)与zip相反:
编辑:
因此,可以实现
combo2
函数的开放式版本:相关问题 更多 >
编程相关推荐