在Python中,可以使用zip(*iterables)
函数来将行转换为列,而不使用透视表。下面是一个示例代码:
# 原始数据
data = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
]
# 使用zip函数将行转换为列
transposed_data = list(zip(*data))
# 输出转置后的数据
for row in transposed_data:
print(row)
输出结果为:
(1, 4, 7)
(2, 5, 8)
(3, 6, 9)
在这个示例中,使用zip(*data)
将列表data
中的每个子列表作为参数传递给zip
函数。zip
函数将每个子列表的第一个元素、第二个元素、第三个元素等等组合在一起,形成一个元组,并返回一个包含这些元组的迭代器。通过将其转换为列表list(zip(*data))
,我们可以获得一个将行转换为列的结果。
请注意,在使用zip
函数时,如果原始数据的行数不同,则转置后的列数将取决于最短的行数。因此,在使用这种方法时,请确保原始数据的行数相同。如果原始数据的行数不同,可以使用itertools.zip_longest
函数来处理不同行数的情况。