如何在Python中将列值转换为行值
我想在R中进行市场篮子分析,并需要在此之前转换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,但您可以
[[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])]