如何在Python中将列值转换为行值

如何在Python中将列值转换为行值,python,python-2.7,transpose,Python,Python 2.7,Transpose,我想在R中进行市场篮子分析,并需要在此之前转换Python数据 当前数据: [[Value1, Value2, Value3,...], [Value3, Value4, Value5,...], [Value4, Value2, Value1,...]] 预期产量 可以使用numpy.transpose对矩形数组进行转置 numpy.transpose([[ 0,1],[2,3]]) array([[0, 2], [1, 3]]) 结果是numpy.ndarray,但您可以

我想在R中进行市场篮子分析,并需要在此之前转换Python数据

当前数据:

[[Value1, Value2, Value3,...],
[Value3, Value4, Value5,...],
[Value4, Value2, Value1,...]]
预期产量
可以使用numpy.transpose对矩形数组进行转置

numpy.transpose([[ 0,1],[2,3]]) 
array([[0, 2],
       [1, 3]])
结果是numpy.ndarray,但您可以使用
.tolist()
将其转换回列表


这不是转置函数的超快速使用,对于较大的项目,您可能应该编写更好的内容,但如果您只是想在教程中包含一些简单的内容,那么它应该很好。

a=[['Value1','Value2','Value3'],['Value3','Value4','Value5'],['Value4','Value2','Value1']]

for i,each in enumerate(a):
    for elem in each:
        print "user%s" %(i+1),elem
值列表(嵌套列表,而不是真正的行和列)

用户名列表-在
ll
中每个项目一个值:

In [265]: ul=['user1','user2','user3']
ul
ll

In [266]: print('\n'.join(['%s %s'%(i,x) for i,j in zip(ul,ll) for x in j]))
user1 1
user1 2
user1 3
user2 3
user2 4
user2 5
user3 4
user3 2
user3 1
显然,这可以被转换为的嵌套
,带有行打印。或作为字符串列表或元组列表(或子列表)保留:


zip(list1,list2)
是一种方便的方法,可以将列表中的项目配对,甚至“转换”列表在这种情况下,“转置”纯粹是一种类比,因为列表和列表对实际上没有列和行。

哪里存在
User
?发布您的尝试。列表中的每一个都不代表任何用户。例如,Value1、Value2、Value3属于user1。等等。你真的写过代码吗,或者你只是希望有人帮你写?谢谢你的回复,但这不符合我的要求。如果我在以下结构中有值,这可能会起作用:[[0,1],[0,2],[0,3],[1,3],[1,5]…]。在查看其他一些答案并重新阅读您的问题后,您似乎根本不想要转置。添加额外的
userN
列意味着您正在寻找一些奇特的打印。我建议更新/编辑您的问题以反映这一点@在我看来,hpaulj上面的答案似乎是最好的选择。
In [265]: ul=['user1','user2','user3']
In [266]: print('\n'.join(['%s %s'%(i,x) for i,j in zip(ul,ll) for x in j]))
user1 1
user1 2
user1 3
user2 3
user2 4
user2 5
user3 4
user3 2
user3 1
In [268]: ['%s %s'%(i,x) for i,j in zip(ul,ll) for x in j]
Out[268]: 
['user1 1',
 'user1 2',
 'user1 3',
 'user2 3',
 'user2 4',
 'user2 5',
 'user3 4',
 'user3 2',
 'user3 1']
In [269]: [(i,x) for i,j in zip(ul,ll) for x in j]
Out[269]: 
[('user1', 1),
 ('user1', 2),
 ('user1', 3),
 ('user2', 3),
 ('user2', 4),
 ('user2', 5),
 ('user3', 4),
 ('user3', 2),
 ('user3', 1)]

In [272]: list(zip(ul,ll))
Out[272]: [('user1', [1, 2, 3]), ('user2', [3, 4, 5]), ('user3', [4, 2, 1])]