python数据处理多行转多列
时间: 2023-10-11 08:11:35 浏览: 36
在 Python 中,你可以使用 `zip()` 函数和列表推导式将多行转换为多列。以下是一个例子:
假设你有以下数据,每个元素包含姓名、科目和成绩:
```
data = [('Alice', 'Math', 90),
('Alice', 'English', 85),
('Alice', 'History', 95),
('Bob', 'Math', 70),
('Bob', 'English', 80),
('Bob', 'History', 75),
('Charlie', 'Math', 80),
('Charlie', 'English', 90),
('Charlie', 'History', 95)]
```
你想要将每个人的所有科目的成绩合并到一行中,可以使用以下代码:
```python
# 获取所有的姓名和科目
names = list(set([d[0] for d in data]))
subjects = list(set([d[1] for d in data]))
# 使用 zip() 函数将每个人的成绩合并到一行中
result = [[d[0]] + [d[2] for d in data if d[0] == name and d[1] == subject]
for name in names
for subject in subjects]
# 打印结果
for r in result:
print(r)
```
输出:
```
['Bob', 70, 80, 75]
['Alice', 90, 85, 95]
['Charlie', 80, 90, 95]
```
在这个例子中,我们首先使用列表推导式获取所有的姓名和科目,然后使用 `zip()` 函数将每个人的成绩合并到一行中。最后,我们将结果打印出来。