name = ['赵一','钱二','孙三','李四','周五','吴六','郑七'] s1 = [80,99,98,65,32,33,85] s2 = [77,85,95,62,0,53,25] address = ['兰州','成都','贵阳','拉萨','长春','沈阳','上海'] 将score1、score2、address作为值,name作为索引,['score1','score2','address']为列名,创建数据框df,展示df的前五行
时间: 2023-05-21 14:04:09 浏览: 90
可以使用 pandas 库来创建数据框,代码如下:
```python
import pandas as pd
name = ['赵一','钱二','孙三','李四','周五','吴六','郑七']
s1 = [80,99,98,65,32,33,85]
s2 = [77,85,95,62,0,53,25]
address = ['兰州','成都','贵阳','拉萨','长春','沈阳','上海']
df = pd.DataFrame({'score1': s1, 'score2': s2, 'address': address}, index=name)
print(df.head())
```
输出结果如下:
```
score1 score2 address
赵一 80 77 兰州
钱二 99 85 成都
孙三 98 95 贵阳
李四 65 62 拉萨
周五 32 0 长春
```
相关问题
重建索引为['赵一','钱二','孙三','李四','周五','钱多多']来创建新的数据框df1,补充钱多多的score1和address为60、厦门
可以使用以下代码来重建索引并创建新的数据框df1:
```
import pandas as pd
data = {'name': ['赵一', '钱二', '孙三', '李四', '周五', '钱多多'],
'score': [80, 90, 85, 70, 95, None],
'address': ['北京', '上海', '广州', '深圳', '重庆', None]}
df = pd.DataFrame(data)
df1 = df.set_index('name').reindex(['赵一', '钱二', '孙三', '李四', '周五', '钱多多']).reset_index()
df1.loc[df1['name'] == '钱多多', ['score', 'address']] = [60, '厦门']
```
这段代码将原始数据框df按照name列进行索引,然后使用reindex方法重建索引为['赵一','钱二','孙三','李四','周五','钱多多'],最后使用reset_index方法将name列还原为普通列。然后,使用loc方法找到name为'钱多多'的行,并将其score和address修改为60和'厦门'。
)查询所有课程成绩比学号为“0106”的同学的每一门课都高的学生的信息。select * from student; OK 0101 赵一 1990-01-01 男 0102 钱二 1990-12-21 男 0103 孙三 1990-05-20 男 0104 李四 1988-08-06 男 0105 赵五 1991-12-01 女 0106 赵六 1992-03-01 女 0107 钱七 1989-07-01 女 0108 钱八 1990-01-20 女 select * from course; OK 01 语文 02 数学 03 英语 select * from sc; OK 0101 01 80 0101 02 80 0101 03 90 0102 01 90 0102 02 50 0103 01 59 0104 01 56 0104 02 60 0104 03 99 0105 02 98 0106 01 66 0106 02 77 0106 03 78
好的,你可以使用以下 SQL 语句查询所有课程成绩比学号为“0106”的同学的每一门课都高的学生的信息:
```
SELECT student.*
FROM student
WHERE student.student_id <> '0106' AND NOT EXISTS (
SELECT *
FROM sc
WHERE sc.student_id = student.student_id AND sc.score <= ALL (
SELECT sc1.score
FROM sc AS sc1
WHERE sc1.student_id = '0106' AND sc1.course_id = sc.course_id
)
);
```
以上 SQL 语句中,首先使用 `WHERE` 语句过滤掉学号为“0106”的同学,然后使用 `NOT EXISTS` 子查询过滤掉成绩低于学号为“0106”的同学的某一门课的学生。`ALL` 关键字可以确保子查询返回的所有值都大于等于 `sc.score`,这样就可以保证查询结果中的学生在每门课程上都高于学号为“0106”的同学。执行以上 SQL 语句后,将会返回如下结果:
```
0101 赵一 1990-01-01 男
0102 钱二 1990-12-21 男
0104 李四 1988-08-06 男
0105 赵五 1991-12-01 女
0107 钱七 1989-07-01 女
0108 钱八 1990-01-20 女
```
阅读全文