课程链接:https://study.163.com/course/courseMain.htm?courseId=1005124008&share=1&shareId=1146477588
# 设定系统环境
import pandas as pd
pd.options.display.max_rows = 10 # 设定自由列表输出最多为10行
pd.__version__ # 显示当前Pandas版本号,默认输出最后一行内容(即使没有打印输出)
'1.1.0'
df2 = pd.read_csv("univ.csv", encoding ="GBK")#使用英文名称,否则可能会报错
#把文件放到了该目录下,因此不需要再写路径,注意编码要写
df2
名次 | 学校名称 | 总分 | 类型 | 所在省份 | 所在城市 | 办学方向 | 主管部门 | |
---|---|---|---|---|---|---|---|---|
0 | 1 | 北京大学 | 100.00 | 综合 | 北京 | 北京市 | 中国研究型 | 教育部 |
1 | 2 | 清华大学 | 98.50 | 理工 | 北京 | 北京市 | 中国研究型 | 教育部 |
2 | 3 | 复旦大学 | 82.79 | 综合 | 上海 | 上海市 | 中国研究型 | 教育部 |
3 | 4 | 武汉大学 | 82.43 | 综合 | 湖北 | 武汉市 | 中国研究型 | 教育部 |
4 | 5 | 浙江大学 | 82.38 | 综合 | 浙江 | 杭州市 | 中国研究型 | 教育部 |
... | ... | ... | ... | ... | ... | ... | ... | ... |
95 | 96 | 浙江师范大学 | 63.37 | 师范 | 浙江 | 金华市 | 区域特色研究型 | 浙江省 |
96 | 97 | 安徽大学 | 63.34 | 综合 | 安徽 | 合肥市 | 区域研究型 | 安徽省 |
97 | 98 | 首都医科大学 | 63.32 | 医药 | 北京 | 北京市 | 区域特色研究型 | 北京市 |
98 | 99 | 江南大学 | 63.31 | 综合 | 江苏 | 无锡市 | 区域特色研究型 | 教育部 |
99 | 100 | 山西大学 | 63.29 | 综合 | 山西 | 太原市 | 区域研究型 | 山西省 |
100 rows × 8 columns
print(df2)
名次 学校名称 总分 类型 所在省份 所在城市 办学方向 主管部门
0 1 北京大学 100.00 综合 北京 北京市 中国研究型 教育部
1 2 清华大学 98.50 理工 北京 北京市 中国研究型 教育部
2 3 复旦大学 82.79 综合 上海 上海市 中国研究型 教育部
3 4 武汉大学 82.43 综合 湖北 武汉市 中国研究型 教育部
4 5 浙江大学 82.38 综合 浙江 杭州市 中国研究型 教育部
.. ... ... ... .. ... ... ... ...
95 96 浙江师范大学 63.37 师范 浙江 金华市 区域特色研究型 浙江省
96 97 安徽大学 63.34 综合 安徽 合肥市 区域研究型 安徽省
97 98 首都医科大学 63.32 医药 北京 北京市 区域特色研究型 北京市
98 99 江南大学 63.31 综合 江苏 无锡市 区域特色研究型 教育部
99 100 山西大学 63.29 综合 山西 太原市 区域研究型 山西省
[100 rows x 8 columns]
# 数据框的基本信息
df2.info()
RangeIndex: 100 entries, 0 to 99
Data columns (total 8 columns):
名次 100 non-null int64
学校名称 100 non-null object
总分 100 non-null float64
类型 100 non-null object
所在省份 100 non-null object
所在城市 100 non-null object
办学方向 100 non-null object
主管部门 100 non-null object
dtypes: float64(1), int64(1), object(6)
memory usage: 6.4+ KB
# 浏览前几条记录
df2.head(10)#head默认前5条
名次 | 学校名称 | 总分 | 类型 | 所在省份 | 所在城市 | 办学方向 | 主管部门 | |
---|---|---|---|---|---|---|---|---|
0 | 1 | 北京大学 | 100.00 | 综合 | 北京 | 北京市 | 中国研究型 | 教育部 |
1 | 2 | 清华大学 | 98.50 | 理工 | 北京 | 北京市 | 中国研究型 | 教育部 |
2 | 3 | 复旦大学 | 82.79 | 综合 | 上海 | 上海市 | 中国研究型 | 教育部 |
3 | 4 | 武汉大学 | 82.43 | 综合 | 湖北 | 武汉市 | 中国研究型 | 教育部 |
4 | 5 | 浙江大学 | 82.38 | 综合 | 浙江 | 杭州市 | 中国研究型 | 教育部 |
5 | 6 | 中国人民大学 | 81.98 | 综合 | 北京 | 北京市 | 中国研究型 | 教育部 |
6 | 7 | 上海交通大学 | 81.76 | 综合 | 上海 | 上海市 | 中国研究型 | 教育部 |
7 | 8 | 南京大学 | 80.43 | 综合 | 江苏 | 南京市 | 中国研究型 | 教育部 |
8 | 9 | 国防科学技术大学 | 80.31 | 理工 | 湖南 | 长沙市 | 中国研究型 | 中央军委 |
9 | 10 | 中山大学 | 76.46 | 综合 | 广东 | 广州市 | 中国研究型 | 教育部 |
# 浏览最后几条记录
df2.tail(3)# 默认5条
名次 | 学校名称 | 总分 | 类型 | 所在省份 | 所在城市 | 办学方向 | 主管部门 | |
---|---|---|---|---|---|---|---|---|
97 | 98 | 首都医科大学 | 63.32 | 医药 | 北京 | 北京市 | 区域特色研究型 | 北京市 |
98 | 99 | 江南大学 | 63.31 | 综合 | 江苏 | 无锡市 | 区域特色研究型 | 教育部 |
99 | 100 | 山西大学 | 63.29 | 综合 | 山西 | 太原市 | 区域研究型 | 山西省 |
直接修改columns属性
df.columns = 新的名称list
# 给出变量名/列名
df2.columns
Index(['名次', '学校名称', '总分', '类型', '所在省份', '所在城市', '办学方向', '主管部门'], dtype='object')
df2.columns = ['名次2', '学校名称2', '总分', '类型',
'所在省份', '所在城市', '办学方向', '主管部门']
#列表数必须全部对应,否则会报错
df2
名次2 | 学校名称2 | 总分 | 类型 | 所在省份 | 所在城市 | 办学方向 | 主管部门 | |
---|---|---|---|---|---|---|---|---|
0 | 1 | 北京大学 | 100.00 | 综合 | 北京 | 北京市 | 中国研究型 | 教育部 |
1 | 2 | 清华大学 | 98.50 | 理工 | 北京 | 北京市 | 中国研究型 | 教育部 |
2 | 3 | 复旦大学 | 82.79 | 综合 | 上海 | 上海市 | 中国研究型 | 教育部 |
3 | 4 | 武汉大学 | 82.43 | 综合 | 湖北 | 武汉市 | 中国研究型 | 教育部 |
4 | 5 | 浙江大学 | 82.38 | 综合 | 浙江 | 杭州市 | 中国研究型 | 教育部 |
... | ... | ... | ... | ... | ... | ... | ... | ... |
95 | 96 | 浙江师范大学 | 63.37 | 师范 | 浙江 | 金华市 | 区域特色研究型 | 浙江省 |
96 | 97 | 安徽大学 | 63.34 | 综合 | 安徽 | 合肥市 | 区域研究型 | 安徽省 |
97 | 98 | 首都医科大学 | 63.32 | 医药 | 北京 | 北京市 | 区域特色研究型 | 北京市 |
98 | 99 | 江南大学 | 63.31 | 综合 | 江苏 | 无锡市 | 区域特色研究型 | 教育部 |
99 | 100 | 山西大学 | 63.29 | 综合 | 山西 | 太原市 | 区域研究型 | 山西省 |
100 rows × 8 columns
只修改指定列名
df.rename(
columns = 新旧名称字典 : {‘旧名称’: ‘新名称’}
inplace = False : 是否直接替换原数据框,默认即为False
)
df3=df2.rename(
columns = {'名次2': '名次', '学校名称2':'学校名称'}
)
print(df3)
df2
名次 学校名称 总分 类型 所在省份 所在城市 办学方向 主管部门
0 1 北京大学 100.00 综合 北京 北京市 中国研究型 教育部
1 2 清华大学 98.50 理工 北京 北京市 中国研究型 教育部
2 3 复旦大学 82.79 综合 上海 上海市 中国研究型 教育部
3 4 武汉大学 82.43 综合 湖北 武汉市 中国研究型 教育部
4 5 浙江大学 82.38 综合 浙江 杭州市 中国研究型 教育部
.. ... ... ... .. ... ... ... ...
95 96 浙江师范大学 63.37 师范 浙江 金华市 区域特色研究型 浙江省
96 97 安徽大学 63.34 综合 安徽 合肥市 区域研究型 安徽省
97 98 首都医科大学 63.32 医药 北京 北京市 区域特色研究型 北京市
98 99 江南大学 63.31 综合 江苏 无锡市 区域特色研究型 教育部
99 100 山西大学 63.29 综合 山西 太原市 区域研究型 山西省
[100 rows x 8 columns]
名次2 | 学校名称2 | 总分 | 类型 | 所在省份 | 所在城市 | 办学方向 | 主管部门 | |
---|---|---|---|---|---|---|---|---|
0 | 1 | 北京大学 | 100.00 | 综合 | 北京 | 北京市 | 中国研究型 | 教育部 |
1 | 2 | 清华大学 | 98.50 | 理工 | 北京 | 北京市 | 中国研究型 | 教育部 |
2 | 3 | 复旦大学 | 82.79 | 综合 | 上海 | 上海市 | 中国研究型 | 教育部 |
3 | 4 | 武汉大学 | 82.43 | 综合 | 湖北 | 武汉市 | 中国研究型 | 教育部 |
4 | 5 | 浙江大学 | 82.38 | 综合 | 浙江 | 杭州市 | 中国研究型 | 教育部 |
... | ... | ... | ... | ... | ... | ... | ... | ... |
95 | 96 | 浙江师范大学 | 63.37 | 师范 | 浙江 | 金华市 | 区域特色研究型 | 浙江省 |
96 | 97 | 安徽大学 | 63.34 | 综合 | 安徽 | 合肥市 | 区域研究型 | 安徽省 |
97 | 98 | 首都医科大学 | 63.32 | 医药 | 北京 | 北京市 | 区域特色研究型 | 北京市 |
98 | 99 | 江南大学 | 63.31 | 综合 | 江苏 | 无锡市 | 区域特色研究型 | 教育部 |
99 | 100 | 山西大学 | 63.29 | 综合 | 山西 | 太原市 | 区域研究型 | 山西省 |
100 rows × 8 columns
df2.rename(
columns = {'名次2': '名次', '学校名称2':'学校名称'}, inplace = True
)
df2#如果被替换的变量写错了,它不执行,并且也不报错,需要注意
名次 | 学校名称 | 总分 | 类型 | 所在省份 | 所在城市 | 办学方向 | 主管部门 | |
---|---|---|---|---|---|---|---|---|
0 | 1 | 北京大学 | 100.00 | 综合 | 北京 | 北京市 | 中国研究型 | 教育部 |
1 | 2 | 清华大学 | 98.50 | 理工 | 北京 | 北京市 | 中国研究型 | 教育部 |
2 | 3 | 复旦大学 | 82.79 | 综合 | 上海 | 上海市 | 中国研究型 | 教育部 |
3 | 4 | 武汉大学 | 82.43 | 综合 | 湖北 | 武汉市 | 中国研究型 | 教育部 |
4 | 5 | 浙江大学 | 82.38 | 综合 | 浙江 | 杭州市 | 中国研究型 | 教育部 |
... | ... | ... | ... | ... | ... | ... | ... | ... |
95 | 96 | 浙江师范大学 | 63.37 | 师范 | 浙江 | 金华市 | 区域特色研究型 | 浙江省 |
96 | 97 | 安徽大学 | 63.34 | 综合 | 安徽 | 合肥市 | 区域研究型 | 安徽省 |
97 | 98 | 首都医科大学 | 63.32 | 医药 | 北京 | 北京市 | 区域特色研究型 | 北京市 |
98 | 99 | 江南大学 | 63.31 | 综合 | 江苏 | 无锡市 | 区域特色研究型 | 教育部 |
99 | 100 | 山西大学 | 63.29 | 综合 | 山西 | 太原市 | 区域研究型 | 山西省 |
100 rows × 8 columns
df.var
只适用于已存在的列
只能筛选单列,结果为Series
df2.名次
0 1
1 2
2 3
3 4
4 5
...
95 96
96 97
97 98
98 99
99 100
Name: 名次, Length: 100, dtype: int64
df[[‘var1’, ‘var2’]]
多列时,列名需要用列表形式提供(因此可使用列表中的切片操作)
多列的筛选结果为DF
df2[['名次','总分']]
名次 | 总分 | |
---|---|---|
0 | 1 | 100.00 |
1 | 2 | 98.50 |
2 | 3 | 82.79 |
3 | 4 | 82.43 |
4 | 5 | 82.38 |
... | ... | ... |
95 | 96 | 63.37 |
96 | 97 | 63.34 |
97 | 98 | 63.32 |
98 | 99 | 63.31 |
99 | 100 | 63.29 |
100 rows × 2 columns
df.drop(
index / columns = 准备删除的行/列标签,多个时用列表形式提供
inplace = False : 是否直接更改原数据框,默认为False
) # pandas0.21版本以上,之前的老版本较为复杂,不多说
df2.drop(columns = ['名次', '所在城市'])
学校名称 | 总分 | 类型 | 所在省份 | 办学方向 | 主管部门 | |
---|---|---|---|---|---|---|
0 | 北京大学 | 100.00 | 综合 | 北京 | 中国研究型 | 教育部 |
1 | 清华大学 | 98.50 | 理工 | 北京 | 中国研究型 | 教育部 |
2 | 复旦大学 | 82.79 | 综合 | 上海 | 中国研究型 | 教育部 |
3 | 武汉大学 | 82.43 | 综合 | 湖北 | 中国研究型 | 教育部 |
4 | 浙江大学 | 82.38 | 综合 | 浙江 | 中国研究型 | 教育部 |
... | ... | ... | ... | ... | ... | ... |
95 | 浙江师范大学 | 63.37 | 师范 | 浙江 | 区域特色研究型 | 浙江省 |
96 | 安徽大学 | 63.34 | 综合 | 安徽 | 区域研究型 | 安徽省 |
97 | 首都医科大学 | 63.32 | 医药 | 北京 | 区域特色研究型 | 北京市 |
98 | 江南大学 | 63.31 | 综合 | 江苏 | 区域特色研究型 | 教育部 |
99 | 山西大学 | 63.29 | 综合 | 山西 | 区域研究型 | 山西省 |
100 rows × 6 columns
del df[‘column-name’]
直接删除原数据框相应的一列,建议尽量少用
Pandas支持的数据类型
具体类型是Python,Numpy各种类型的混合,可以比下表分的更细
float
int
string
bool
datetime64[ns], datetime64[ns, tz], timedelta[ns] #都与时间格式有关
category
object#其实质即为string类型
df.dtypes : 查看各列的数据类型
df2.dtypes
名次 int64
学校名称 object
总分 float64
类型 object
所在省份 object
所在城市 object
办学方向 object
主管部门 object
dtype: object
在不同数据类型间转换
df.astype(
dtype : 指定希望转换的数据类型(可以使用numpy或者python中的数据类型: int/float/bool/str )
copy = True : 是否生成新的副本,而不是替换原数据框
errors = ‘raise’ : 转换出错时是否抛出错误,‘raise’/‘ignore’
)
df2.astype('str').dtypes
名次 object
学校名称 object
总分 object
类型 object
所在省份 object
所在城市 object
办学方向 object
主管部门 object
dtype: object
df2.名次.astype('str')
0 1
1 2
2 3
3 4
4 5
...
95 96
96 97
97 98
98 99
99 100
Name: 名次, Length: 100, dtype: object
df2.astype('int', errors = 'ignore').dtypes
名次 int32
学校名称 object
总分 int32
类型 object
所在省份 object
所在城市 object
办学方向 object
主管部门 object
dtype: object
#以下的转换了解即可,不推荐使用
明确指定转换类型的函数:
pd.to_datetime()
pd.to_timedelta()
pd.to_numeric()
df.to_string()
可以配合df.apply来批量进行多列的转换
df.infer_objects() 基于数据特征进行自动转换,0.21版以后新增
bj2012 = pd.read_csv("PM25\Beijing_2012_HourlyPM2.5_created20140325.csv",encoding ="gbk",skiprows=3)#注意sep
bj2012
Site | Parameter | Date (LST) | Year | Month | Day | Hour | Value | Unit | Duration | QC Name | |
---|---|---|---|---|---|---|---|---|---|---|---|
0 | Beijing | PM2.5 | 2012-1-1 0:00 | 2012 | 1 | 1 | 0 | 303 | 礸/mg? | 1 Hr | Valid |
1 | Beijing | PM2.5 | 2012-1-1 1:00 | 2012 | 1 | 1 | 1 | 215 | 礸/mg? | 1 Hr | Valid |
2 | Beijing | PM2.5 | 2012-1-1 2:00 | 2012 | 1 | 1 | 2 | 222 | 礸/mg? | 1 Hr | Valid |
3 | Beijing | PM2.5 | 2012-1-1 3:00 | 2012 | 1 | 1 | 3 | 85 | 礸/mg? | 1 Hr | Valid |
4 | Beijing | PM2.5 | 2012-1-1 4:00 | 2012 | 1 | 1 | 4 | 38 | 礸/mg? | 1 Hr | Valid |
... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
8779 | Beijing | PM2.5 | 2012-12-31 19:00 | 2012 | 12 | 31 | 19 | 131 | 礸/mg?1 Hr | Valid | NaN |
8780 | Beijing | PM2.5 | 2012-12-31 20:00 | 2012 | 12 | 31 | 20 | 113 | 礸/mg?1 Hr | Valid | NaN |
8781 | Beijing | PM2.5 | 2012-12-31 21:00 | 2012 | 12 | 31 | 21 | 45 | 礸/mg?1 Hr | Valid | NaN |
8782 | Beijing | PM2.5 | 2012-12-31 22:00 | 2012 | 12 | 31 | 22 | 39 | 礸/mg?1 Hr | Valid | NaN |
8783 | Beijing | PM2.5 | 2012-12-31 23:00 | 2012 | 12 | 31 | 23 | 35 | 礸/mg?1 Hr | Valid | NaN |
8784 rows × 11 columns
bj2012.drop(columns = ['Parameter','Duration','QC Name'],inplace = True )
#之前执行了一次删除,在执行就会因为找不到而报错
bj2012
Site | Date (LST) | Year | Month | Day | Hour | Value | Unit | |
---|---|---|---|---|---|---|---|---|
0 | Beijing | 2012-1-1 0:00 | 2012 | 1 | 1 | 0 | 303 | 礸/mg? |
1 | Beijing | 2012-1-1 1:00 | 2012 | 1 | 1 | 1 | 215 | 礸/mg? |
2 | Beijing | 2012-1-1 2:00 | 2012 | 1 | 1 | 2 | 222 | 礸/mg? |
3 | Beijing | 2012-1-1 3:00 | 2012 | 1 | 1 | 3 | 85 | 礸/mg? |
4 | Beijing | 2012-1-1 4:00 | 2012 | 1 | 1 | 4 | 38 | 礸/mg? |
... | ... | ... | ... | ... | ... | ... | ... | ... |
8779 | Beijing | 2012-12-31 19:00 | 2012 | 12 | 31 | 19 | 131 | 礸/mg?1 Hr |
8780 | Beijing | 2012-12-31 20:00 | 2012 | 12 | 31 | 20 | 113 | 礸/mg?1 Hr |
8781 | Beijing | 2012-12-31 21:00 | 2012 | 12 | 31 | 21 | 45 | 礸/mg?1 Hr |
8782 | Beijing | 2012-12-31 22:00 | 2012 | 12 | 31 | 22 | 39 | 礸/mg?1 Hr |
8783 | Beijing | 2012-12-31 23:00 | 2012 | 12 | 31 | 23 | 35 | 礸/mg?1 Hr |
8784 rows × 8 columns
bj2012.rename(
columns = {'Date (LST)': '时间', 'Value':'数值'}, inplace = True
)
bj2012
Site | 时间 | Year | Month | Day | Hour | 数值 | Unit | |
---|---|---|---|---|---|---|---|---|
0 | Beijing | 2012-1-1 0:00 | 2012 | 1 | 1 | 0 | 303 | 礸/mg? |
1 | Beijing | 2012-1-1 1:00 | 2012 | 1 | 1 | 1 | 215 | 礸/mg? |
2 | Beijing | 2012-1-1 2:00 | 2012 | 1 | 1 | 2 | 222 | 礸/mg? |
3 | Beijing | 2012-1-1 3:00 | 2012 | 1 | 1 | 3 | 85 | 礸/mg? |
4 | Beijing | 2012-1-1 4:00 | 2012 | 1 | 1 | 4 | 38 | 礸/mg? |
... | ... | ... | ... | ... | ... | ... | ... | ... |
8779 | Beijing | 2012-12-31 19:00 | 2012 | 12 | 31 | 19 | 131 | 礸/mg?1 Hr |
8780 | Beijing | 2012-12-31 20:00 | 2012 | 12 | 31 | 20 | 113 | 礸/mg?1 Hr |
8781 | Beijing | 2012-12-31 21:00 | 2012 | 12 | 31 | 21 | 45 | 礸/mg?1 Hr |
8782 | Beijing | 2012-12-31 22:00 | 2012 | 12 | 31 | 22 | 39 | 礸/mg?1 Hr |
8783 | Beijing | 2012-12-31 23:00 | 2012 | 12 | 31 | 23 | 35 | 礸/mg?1 Hr |
8784 rows × 8 columns
bj2012.dtypes
Site object
时间 object
Year int64
Month int64
Day int64
Hour int64
数值 int64
Unit object
dtype: object
索引的用途:
用于在分析、可视化、数据展示、数据操作中标记数据行
提供数据汇总、合并、筛选时的关键依据
提供数据重构时的关键依据
注意事项:
索引是不可直接修改的,只能增、删、替换
逻辑上索引不应当出现重复值,Pandas对这种情况不会报错,但显然有潜在风险
新建数据框时建立索引
所有的数据框默认都已经拥有流水号格式的索引,因此这里的“建立”索引指的是自定义索引
df1 = pd.DataFrame(
{'var1' : 1.0, 'var2' : [1,2,3,4],
'var3' :["test","train","test","train"], 'var4' : 'cons'},
index = [0, 1 , 2, 5]#index的数量一定要和行数相对应
)
df1
var1 | var2 | var3 | var4 | |
---|---|---|---|---|
0 | 1.0 | 1 | test | cons |
1 | 1.0 | 2 | train | cons |
2 | 1.0 | 3 | test | cons |
5 | 1.0 | 4 | train | cons |
数据列直接提供索引值,因此指明相应的数据列即可
df2 = pd.read_csv("univ.csv", encoding ="gbk", index_col="学校名称" )
df2
名次 | 总分 | 类型 | 所在省份 | 所在城市 | 办学方向 | 主管部门 | |
---|---|---|---|---|---|---|---|
学校名称 | |||||||
北京大学 | 1 | 100.00 | 综合 | 北京 | 北京市 | 中国研究型 | 教育部 |
清华大学 | 2 | 98.50 | 理工 | 北京 | 北京市 | 中国研究型 | 教育部 |
复旦大学 | 3 | 82.79 | 综合 | 上海 | 上海市 | 中国研究型 | 教育部 |
武汉大学 | 4 | 82.43 | 综合 | 湖北 | 武汉市 | 中国研究型 | 教育部 |
浙江大学 | 5 | 82.38 | 综合 | 浙江 | 杭州市 | 中国研究型 | 教育部 |
... | ... | ... | ... | ... | ... | ... | ... |
浙江师范大学 | 96 | 63.37 | 师范 | 浙江 | 金华市 | 区域特色研究型 | 浙江省 |
安徽大学 | 97 | 63.34 | 综合 | 安徽 | 合肥市 | 区域研究型 | 安徽省 |
首都医科大学 | 98 | 63.32 | 医药 | 北京 | 北京市 | 区域特色研究型 | 北京市 |
江南大学 | 99 | 63.31 | 综合 | 江苏 | 无锡市 | 区域特色研究型 | 教育部 |
山西大学 | 100 | 63.29 | 综合 | 山西 | 太原市 | 区域研究型 | 山西省 |
100 rows × 7 columns
# 生成复合索引
df2 = pd.read_csv("univ.csv", encoding ="gbk",
index_col=["类型", "学校名称"] )
df2
名次 | 总分 | 所在省份 | 所在城市 | 办学方向 | 主管部门 | ||
---|---|---|---|---|---|---|---|
类型 | 学校名称 | ||||||
综合 | 北京大学 | 1 | 100.00 | 北京 | 北京市 | 中国研究型 | 教育部 |
理工 | 清华大学 | 2 | 98.50 | 北京 | 北京市 | 中国研究型 | 教育部 |
综合 | 复旦大学 | 3 | 82.79 | 上海 | 上海市 | 中国研究型 | 教育部 |
武汉大学 | 4 | 82.43 | 湖北 | 武汉市 | 中国研究型 | 教育部 | |
浙江大学 | 5 | 82.38 | 浙江 | 杭州市 | 中国研究型 | 教育部 | |
... | ... | ... | ... | ... | ... | ... | ... |
师范 | 浙江师范大学 | 96 | 63.37 | 浙江 | 金华市 | 区域特色研究型 | 浙江省 |
综合 | 安徽大学 | 97 | 63.34 | 安徽 | 合肥市 | 区域研究型 | 安徽省 |
医药 | 首都医科大学 | 98 | 63.32 | 北京 | 北京市 | 区域特色研究型 | 北京市 |
综合 | 江南大学 | 99 | 63.31 | 江苏 | 无锡市 | 区域特色研究型 | 教育部 |
山西大学 | 100 | 63.29 | 山西 | 太原市 | 区域研究型 | 山西省 |
100 rows × 6 columns
df.set_index(
keys : 被指定为索引的列名,复合索引用list格式提供
drop = True : 建立索引后是否删除该列
append = False : 是否在原索引基础上添加索引,默认是直接替换原索引
inplace = False : 是否直接修改原数据框
)
df2.reset_index(inplace=True) # 筛选其中一个进行还原
df2
类型 | 学校名称 | 名次 | 总分 | 所在省份 | 所在城市 | 办学方向 | 主管部门 | |
---|---|---|---|---|---|---|---|---|
0 | 综合 | 北京大学 | 1 | 100.00 | 北京 | 北京市 | 中国研究型 | 教育部 |
1 | 理工 | 清华大学 | 2 | 98.50 | 北京 | 北京市 | 中国研究型 | 教育部 |
2 | 综合 | 复旦大学 | 3 | 82.79 | 上海 | 上海市 | 中国研究型 | 教育部 |
3 | 综合 | 武汉大学 | 4 | 82.43 | 湖北 | 武汉市 | 中国研究型 | 教育部 |
4 | 综合 | 浙江大学 | 5 | 82.38 | 浙江 | 杭州市 | 中国研究型 | 教育部 |
... | ... | ... | ... | ... | ... | ... | ... | ... |
95 | 师范 | 浙江师范大学 | 96 | 63.37 | 浙江 | 金华市 | 区域特色研究型 | 浙江省 |
96 | 综合 | 安徽大学 | 97 | 63.34 | 安徽 | 合肥市 | 区域研究型 | 安徽省 |
97 | 医药 | 首都医科大学 | 98 | 63.32 | 北京 | 北京市 | 区域特色研究型 | 北京市 |
98 | 综合 | 江南大学 | 99 | 63.31 | 江苏 | 无锡市 | 区域特色研究型 | 教育部 |
99 | 综合 | 山西大学 | 100 | 63.29 | 山西 | 太原市 | 区域研究型 | 山西省 |
100 rows × 8 columns
df_new = df2.set_index(['名次','学校名称'], drop = False)
df_new
类型 | 学校名称 | 名次 | 总分 | 所在省份 | 所在城市 | 办学方向 | 主管部门 | ||
---|---|---|---|---|---|---|---|---|---|
名次 | 学校名称 | ||||||||
1 | 北京大学 | 综合 | 北京大学 | 1 | 100.00 | 北京 | 北京市 | 中国研究型 | 教育部 |
2 | 清华大学 | 理工 | 清华大学 | 2 | 98.50 | 北京 | 北京市 | 中国研究型 | 教育部 |
3 | 复旦大学 | 综合 | 复旦大学 | 3 | 82.79 | 上海 | 上海市 | 中国研究型 | 教育部 |
4 | 武汉大学 | 综合 | 武汉大学 | 4 | 82.43 | 湖北 | 武汉市 | 中国研究型 | 教育部 |
5 | 浙江大学 | 综合 | 浙江大学 | 5 | 82.38 | 浙江 | 杭州市 | 中国研究型 | 教育部 |
... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
96 | 浙江师范大学 | 师范 | 浙江师范大学 | 96 | 63.37 | 浙江 | 金华市 | 区域特色研究型 | 浙江省 |
97 | 安徽大学 | 综合 | 安徽大学 | 97 | 63.34 | 安徽 | 合肥市 | 区域研究型 | 安徽省 |
98 | 首都医科大学 | 医药 | 首都医科大学 | 98 | 63.32 | 北京 | 北京市 | 区域特色研究型 | 北京市 |
99 | 江南大学 | 综合 | 江南大学 | 99 | 63.31 | 江苏 | 无锡市 | 区域特色研究型 | 教育部 |
100 | 山西大学 | 综合 | 山西大学 | 100 | 63.29 | 山西 | 太原市 | 区域研究型 | 山西省 |
100 rows × 8 columns
# 生成复合索引
df_new = df2.set_index('名次')# 不删除变量列
df_new
类型 | 学校名称 | 总分 | 所在省份 | 所在城市 | 办学方向 | 主管部门 | |
---|---|---|---|---|---|---|---|
名次 | |||||||
1 | 综合 | 北京大学 | 100.00 | 北京 | 北京市 | 中国研究型 | 教育部 |
2 | 理工 | 清华大学 | 98.50 | 北京 | 北京市 | 中国研究型 | 教育部 |
3 | 综合 | 复旦大学 | 82.79 | 上海 | 上海市 | 中国研究型 | 教育部 |
4 | 综合 | 武汉大学 | 82.43 | 湖北 | 武汉市 | 中国研究型 | 教育部 |
5 | 综合 | 浙江大学 | 82.38 | 浙江 | 杭州市 | 中国研究型 | 教育部 |
... | ... | ... | ... | ... | ... | ... | ... |
96 | 师范 | 浙江师范大学 | 63.37 | 浙江 | 金华市 | 区域特色研究型 | 浙江省 |
97 | 综合 | 安徽大学 | 63.34 | 安徽 | 合肥市 | 区域研究型 | 安徽省 |
98 | 医药 | 首都医科大学 | 63.32 | 北京 | 北京市 | 区域特色研究型 | 北京市 |
99 | 综合 | 江南大学 | 63.31 | 江苏 | 无锡市 | 区域特色研究型 | 教育部 |
100 | 综合 | 山西大学 | 63.29 | 山西 | 太原市 | 区域研究型 | 山西省 |
100 rows × 7 columns
将索引还原回变量列
df.reset_index(
drop = False : 是否将索引直接删除,而不是还原为变量列
inplace = False : 是否直接修改原数据框
level = None : 对于多重索引,确定转换哪个级别为变量
)
df_new2 = df2.copy() # 真正生成副本,而不是指定另一个别名
#df_new2 = df2给df2起了一个别名,操作会在df2上进行操作
df_new2.set_index(['名次','类型','所在省份'], inplace = True)
df_new2
学校名称 | 总分 | 所在城市 | 办学方向 | 主管部门 | |||
---|---|---|---|---|---|---|---|
名次 | 类型 | 所在省份 | |||||
1 | 综合 | 北京 | 北京大学 | 100.00 | 北京市 | 中国研究型 | 教育部 |
2 | 理工 | 北京 | 清华大学 | 98.50 | 北京市 | 中国研究型 | 教育部 |
3 | 综合 | 上海 | 复旦大学 | 82.79 | 上海市 | 中国研究型 | 教育部 |
4 | 综合 | 湖北 | 武汉大学 | 82.43 | 武汉市 | 中国研究型 | 教育部 |
5 | 综合 | 浙江 | 浙江大学 | 82.38 | 杭州市 | 中国研究型 | 教育部 |
... | ... | ... | ... | ... | ... | ... | ... |
96 | 师范 | 浙江 | 浙江师范大学 | 63.37 | 金华市 | 区域特色研究型 | 浙江省 |
97 | 综合 | 安徽 | 安徽大学 | 63.34 | 合肥市 | 区域研究型 | 安徽省 |
98 | 医药 | 北京 | 首都医科大学 | 63.32 | 北京市 | 区域特色研究型 | 北京市 |
99 | 综合 | 江苏 | 江南大学 | 63.31 | 无锡市 | 区域特色研究型 | 教育部 |
100 | 综合 | 山西 | 山西大学 | 63.29 | 太原市 | 区域研究型 | 山西省 |
100 rows × 5 columns
df_new2.reset_index(level = ['类型'],inplace = True) # 筛选其中一个进行还原
df_new2
类型 | 学校名称 | 总分 | 所在城市 | 办学方向 | 主管部门 | ||
---|---|---|---|---|---|---|---|
名次 | 所在省份 | ||||||
1 | 北京 | 综合 | 北京大学 | 100.00 | 北京市 | 中国研究型 | 教育部 |
2 | 北京 | 理工 | 清华大学 | 98.50 | 北京市 | 中国研究型 | 教育部 |
3 | 上海 | 综合 | 复旦大学 | 82.79 | 上海市 | 中国研究型 | 教育部 |
4 | 湖北 | 综合 | 武汉大学 | 82.43 | 武汉市 | 中国研究型 | 教育部 |
5 | 浙江 | 综合 | 浙江大学 | 82.38 | 杭州市 | 中国研究型 | 教育部 |
... | ... | ... | ... | ... | ... | ... | ... |
96 | 浙江 | 师范 | 浙江师范大学 | 63.37 | 金华市 | 区域特色研究型 | 浙江省 |
97 | 安徽 | 综合 | 安徽大学 | 63.34 | 合肥市 | 区域研究型 | 安徽省 |
98 | 北京 | 医药 | 首都医科大学 | 63.32 | 北京市 | 区域特色研究型 | 北京市 |
99 | 江苏 | 综合 | 江南大学 | 63.31 | 无锡市 | 区域特色研究型 | 教育部 |
100 | 山西 | 综合 | 山西大学 | 63.29 | 太原市 | 区域研究型 | 山西省 |
100 rows × 6 columns
df_new2.reset_index(level = ['名次','所在省份']) # 保留一个作为索引
名次 | 所在省份 | 类型 | 学校名称 | 总分 | 所在城市 | 办学方向 | 主管部门 | |
---|---|---|---|---|---|---|---|---|
0 | 1 | 北京 | 综合 | 北京大学 | 100.00 | 北京市 | 中国研究型 | 教育部 |
1 | 2 | 北京 | 理工 | 清华大学 | 98.50 | 北京市 | 中国研究型 | 教育部 |
2 | 3 | 上海 | 综合 | 复旦大学 | 82.79 | 上海市 | 中国研究型 | 教育部 |
3 | 4 | 湖北 | 综合 | 武汉大学 | 82.43 | 武汉市 | 中国研究型 | 教育部 |
4 | 5 | 浙江 | 综合 | 浙江大学 | 82.38 | 杭州市 | 中国研究型 | 教育部 |
... | ... | ... | ... | ... | ... | ... | ... | ... |
95 | 96 | 浙江 | 师范 | 浙江师范大学 | 63.37 | 金华市 | 区域特色研究型 | 浙江省 |
96 | 97 | 安徽 | 综合 | 安徽大学 | 63.34 | 合肥市 | 区域研究型 | 安徽省 |
97 | 98 | 北京 | 医药 | 首都医科大学 | 63.32 | 北京市 | 区域特色研究型 | 北京市 |
98 | 99 | 江苏 | 综合 | 江南大学 | 63.31 | 无锡市 | 区域特色研究型 | 教育部 |
99 | 100 | 山西 | 综合 | 山西大学 | 63.29 | 太原市 | 区域研究型 | 山西省 |
100 rows × 8 columns
df_new2.reset_index(inplace = True) # 将索引全部还原为变量
df_new2
名次 | 所在省份 | 类型 | 学校名称 | 总分 | 所在城市 | 办学方向 | 主管部门 | |
---|---|---|---|---|---|---|---|---|
0 | 1 | 北京 | 综合 | 北京大学 | 100.00 | 北京市 | 中国研究型 | 教育部 |
1 | 2 | 北京 | 理工 | 清华大学 | 98.50 | 北京市 | 中国研究型 | 教育部 |
2 | 3 | 上海 | 综合 | 复旦大学 | 82.79 | 上海市 | 中国研究型 | 教育部 |
3 | 4 | 湖北 | 综合 | 武汉大学 | 82.43 | 武汉市 | 中国研究型 | 教育部 |
4 | 5 | 浙江 | 综合 | 浙江大学 | 82.38 | 杭州市 | 中国研究型 | 教育部 |
... | ... | ... | ... | ... | ... | ... | ... | ... |
95 | 96 | 浙江 | 师范 | 浙江师范大学 | 63.37 | 金华市 | 区域特色研究型 | 浙江省 |
96 | 97 | 安徽 | 综合 | 安徽大学 | 63.34 | 合肥市 | 区域研究型 | 安徽省 |
97 | 98 | 北京 | 医药 | 首都医科大学 | 63.32 | 北京市 | 区域特色研究型 | 北京市 |
98 | 99 | 江苏 | 综合 | 江南大学 | 63.31 | 无锡市 | 区域特色研究型 | 教育部 |
99 | 100 | 山西 | 综合 | 山西大学 | 63.29 | 太原市 | 区域研究型 | 山西省 |
100 rows × 8 columns
引用索引
注意:索引仍然是有存储格式的,注意区分数值型和字符型的引用方式
修改索引名
本质上和变量列名的修改方式相同
df2.index.names # 复数形式的names代表可能是多重索引
#默认的流水号索引所以结果为None
FrozenList([None])
df2.index.names = ['idx']
df2.index.names
FrozenList(['idx'])
df_new2.set_index(['名次','类型','所在省份'], inplace = True)
df_new2
学校名称 | 总分 | 所在城市 | 办学方向 | 主管部门 | |||
---|---|---|---|---|---|---|---|
名次 | 类型 | 所在省份 | |||||
1 | 综合 | 北京 | 北京大学 | 100.00 | 北京市 | 中国研究型 | 教育部 |
2 | 理工 | 北京 | 清华大学 | 98.50 | 北京市 | 中国研究型 | 教育部 |
3 | 综合 | 上海 | 复旦大学 | 82.79 | 上海市 | 中国研究型 | 教育部 |
4 | 综合 | 湖北 | 武汉大学 | 82.43 | 武汉市 | 中国研究型 | 教育部 |
5 | 综合 | 浙江 | 浙江大学 | 82.38 | 杭州市 | 中国研究型 | 教育部 |
... | ... | ... | ... | ... | ... | ... | ... |
96 | 师范 | 浙江 | 浙江师范大学 | 63.37 | 金华市 | 区域特色研究型 | 浙江省 |
97 | 综合 | 安徽 | 安徽大学 | 63.34 | 合肥市 | 区域研究型 | 安徽省 |
98 | 医药 | 北京 | 首都医科大学 | 63.32 | 北京市 | 区域特色研究型 | 北京市 |
99 | 综合 | 江苏 | 江南大学 | 63.31 | 无锡市 | 区域特色研究型 | 教育部 |
100 | 综合 | 山西 | 山西大学 | 63.29 | 太原市 | 区域研究型 | 山西省 |
100 rows × 5 columns
df_new2.index.names = [None, None, None] # None代表无名称
df_new2
学校名称 | 总分 | 所在城市 | 办学方向 | 主管部门 | |||
---|---|---|---|---|---|---|---|
1 | 综合 | 北京 | 北京大学 | 100.00 | 北京市 | 中国研究型 | 教育部 |
2 | 理工 | 北京 | 清华大学 | 98.50 | 北京市 | 中国研究型 | 教育部 |
3 | 综合 | 上海 | 复旦大学 | 82.79 | 上海市 | 中国研究型 | 教育部 |
4 | 综合 | 湖北 | 武汉大学 | 82.43 | 武汉市 | 中国研究型 | 教育部 |
5 | 综合 | 浙江 | 浙江大学 | 82.38 | 杭州市 | 中国研究型 | 教育部 |
... | ... | ... | ... | ... | ... | ... | ... |
96 | 师范 | 浙江 | 浙江师范大学 | 63.37 | 金华市 | 区域特色研究型 | 浙江省 |
97 | 综合 | 安徽 | 安徽大学 | 63.34 | 合肥市 | 区域研究型 | 安徽省 |
98 | 医药 | 北京 | 首都医科大学 | 63.32 | 北京市 | 区域特色研究型 | 北京市 |
99 | 综合 | 江苏 | 江南大学 | 63.31 | 无锡市 | 区域特色研究型 | 教育部 |
100 | 综合 | 山西 | 山西大学 | 63.29 | 太原市 | 区域研究型 | 山西省 |
100 rows × 5 columns
修改索引值
这里的修改本质上是全部替换,因为索引值不能修改,只能替换
#df1.index [3] = 6 # 此处无法直接赋值
df1.index = ['a', 'b', 'c', 6]
df1.index
Index(['a', 'b', 'c', 6], dtype='object')
强行更新索引
reindex则可以使用数据框中不存在的数值建立索引,并据此扩充新索引值对应的索引行/列,同时进行缺失值填充操作
df.reindex(
labels : 类数组结构的数值,将按此数值重建索引,非必需
axis : 针对哪个轴进行重建
('index', 'columns') or number (0, 1).
copy = True : 建立新对象而不是直接更改原df/series
level : 考虑被重建的索引级别
缺失数据的处理方式
method : 针对已经排序过的索引,确定数据单元格无数据时的填充方法,非必需
pad / ffill: 用前面的有效数值填充
backfill / bfill: 用后面的有效数值填充
nearest: 使用最接近的数值进行填充
fill_value = np.NaN : 将缺失值用什么数值替代
limit = None : 向前/向后填充时的最大步长
)
df2.reindex([1,2,99,101])
类型 | 学校名称 | 名次 | 总分 | 所在省份 | 所在城市 | 办学方向 | 主管部门 | |
---|---|---|---|---|---|---|---|---|
idx | ||||||||
1 | 理工 | 清华大学 | 2.0 | 98.50 | 北京 | 北京市 | 中国研究型 | 教育部 |
2 | 综合 | 复旦大学 | 3.0 | 82.79 | 上海 | 上海市 | 中国研究型 | 教育部 |
99 | 综合 | 山西大学 | 100.0 | 63.29 | 山西 | 太原市 | 区域研究型 | 山西省 |
101 | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN |
df2.reindex([1,2,99,101], method = 'ffill' )
类型 | 学校名称 | 名次 | 总分 | 所在省份 | 所在城市 | 办学方向 | 主管部门 | |
---|---|---|---|---|---|---|---|---|
idx | ||||||||
1 | 理工 | 清华大学 | 2 | 98.50 | 北京 | 北京市 | 中国研究型 | 教育部 |
2 | 综合 | 复旦大学 | 3 | 82.79 | 上海 | 上海市 | 中国研究型 | 教育部 |
99 | 综合 | 山西大学 | 100 | 63.29 | 山西 | 太原市 | 区域研究型 | 山西省 |
101 | 综合 | 山西大学 | 100 | 63.29 | 山西 | 太原市 | 区域研究型 | 山西省 |
df2.reindex([1,2,99,101], fill_value= "不知道" )
类型 | 学校名称 | 名次 | 总分 | 所在省份 | 所在城市 | 办学方向 | 主管部门 | |
---|---|---|---|---|---|---|---|---|
idx | ||||||||
1 | 理工 | 清华大学 | 2 | 98.5 | 北京 | 北京市 | 中国研究型 | 教育部 |
2 | 综合 | 复旦大学 | 3 | 82.79 | 上海 | 上海市 | 中国研究型 | 教育部 |
99 | 综合 | 山西大学 | 100 | 63.29 | 山西 | 太原市 | 区域研究型 | 山西省 |
101 | 不知道 | 不知道 | 不知道 | 不知道 | 不知道 | 不知道 | 不知道 | 不知道 |
df2.reindex([1,2,99,101], fill_value= "不知道" ).dtypes
类型 object
学校名称 object
名次 object
总分 object
所在省份 object
所在城市 object
办学方向 object
主管部门 object
dtype: object
bj2012 = pd.read_csv("PM25\Beijing_2012_HourlyPM2.5_created20140325.csv",encoding ="gbk",skiprows=3)#注意sep
bj2012
Site | Parameter | Date (LST) | Year | Month | Day | Hour | Value | Unit | Duration | QC Name | |
---|---|---|---|---|---|---|---|---|---|---|---|
0 | Beijing | PM2.5 | 2012-1-1 0:00 | 2012 | 1 | 1 | 0 | 303 | 礸/mg? | 1 Hr | Valid |
1 | Beijing | PM2.5 | 2012-1-1 1:00 | 2012 | 1 | 1 | 1 | 215 | 礸/mg? | 1 Hr | Valid |
2 | Beijing | PM2.5 | 2012-1-1 2:00 | 2012 | 1 | 1 | 2 | 222 | 礸/mg? | 1 Hr | Valid |
3 | Beijing | PM2.5 | 2012-1-1 3:00 | 2012 | 1 | 1 | 3 | 85 | 礸/mg? | 1 Hr | Valid |
4 | Beijing | PM2.5 | 2012-1-1 4:00 | 2012 | 1 | 1 | 4 | 38 | 礸/mg? | 1 Hr | Valid |
... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
8779 | Beijing | PM2.5 | 2012-12-31 19:00 | 2012 | 12 | 31 | 19 | 131 | 礸/mg?1 Hr | Valid | NaN |
8780 | Beijing | PM2.5 | 2012-12-31 20:00 | 2012 | 12 | 31 | 20 | 113 | 礸/mg?1 Hr | Valid | NaN |
8781 | Beijing | PM2.5 | 2012-12-31 21:00 | 2012 | 12 | 31 | 21 | 45 | 礸/mg?1 Hr | Valid | NaN |
8782 | Beijing | PM2.5 | 2012-12-31 22:00 | 2012 | 12 | 31 | 22 | 39 | 礸/mg?1 Hr | Valid | NaN |
8783 | Beijing | PM2.5 | 2012-12-31 23:00 | 2012 | 12 | 31 | 23 | 35 | 礸/mg?1 Hr | Valid | NaN |
8784 rows × 11 columns
bj2012_new = pd.read_csv("PM25\Beijing_2012_HourlyPM2.5_created20140325.csv",
encoding ="gbk", index_col ='Value',skiprows=3 )
bj2012_new
Site | Parameter | Date (LST) | Year | Month | Day | Hour | Unit | Duration | QC Name | |
---|---|---|---|---|---|---|---|---|---|---|
Value | ||||||||||
303 | Beijing | PM2.5 | 2012-1-1 0:00 | 2012 | 1 | 1 | 0 | 礸/mg? | 1 Hr | Valid |
215 | Beijing | PM2.5 | 2012-1-1 1:00 | 2012 | 1 | 1 | 1 | 礸/mg? | 1 Hr | Valid |
222 | Beijing | PM2.5 | 2012-1-1 2:00 | 2012 | 1 | 1 | 2 | 礸/mg? | 1 Hr | Valid |
85 | Beijing | PM2.5 | 2012-1-1 3:00 | 2012 | 1 | 1 | 3 | 礸/mg? | 1 Hr | Valid |
38 | Beijing | PM2.5 | 2012-1-1 4:00 | 2012 | 1 | 1 | 4 | 礸/mg? | 1 Hr | Valid |
... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
131 | Beijing | PM2.5 | 2012-12-31 19:00 | 2012 | 12 | 31 | 19 | 礸/mg?1 Hr | Valid | NaN |
113 | Beijing | PM2.5 | 2012-12-31 20:00 | 2012 | 12 | 31 | 20 | 礸/mg?1 Hr | Valid | NaN |
45 | Beijing | PM2.5 | 2012-12-31 21:00 | 2012 | 12 | 31 | 21 | 礸/mg?1 Hr | Valid | NaN |
39 | Beijing | PM2.5 | 2012-12-31 22:00 | 2012 | 12 | 31 | 22 | 礸/mg?1 Hr | Valid | NaN |
35 | Beijing | PM2.5 | 2012-12-31 23:00 | 2012 | 12 | 31 | 23 | 礸/mg?1 Hr | Valid | NaN |
8784 rows × 10 columns
bj2012_new2 = bj2012.set_index('Date (LST)', drop = True)
bj2012_new2
Site | Parameter | Year | Month | Day | Hour | Value | Unit | Duration | QC Name | |
---|---|---|---|---|---|---|---|---|---|---|
Date (LST) | ||||||||||
2012-1-1 0:00 | Beijing | PM2.5 | 2012 | 1 | 1 | 0 | 303 | 礸/mg? | 1 Hr | Valid |
2012-1-1 1:00 | Beijing | PM2.5 | 2012 | 1 | 1 | 1 | 215 | 礸/mg? | 1 Hr | Valid |
2012-1-1 2:00 | Beijing | PM2.5 | 2012 | 1 | 1 | 2 | 222 | 礸/mg? | 1 Hr | Valid |
2012-1-1 3:00 | Beijing | PM2.5 | 2012 | 1 | 1 | 3 | 85 | 礸/mg? | 1 Hr | Valid |
2012-1-1 4:00 | Beijing | PM2.5 | 2012 | 1 | 1 | 4 | 38 | 礸/mg? | 1 Hr | Valid |
... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
2012-12-31 19:00 | Beijing | PM2.5 | 2012 | 12 | 31 | 19 | 131 | 礸/mg?1 Hr | Valid | NaN |
2012-12-31 20:00 | Beijing | PM2.5 | 2012 | 12 | 31 | 20 | 113 | 礸/mg?1 Hr | Valid | NaN |
2012-12-31 21:00 | Beijing | PM2.5 | 2012 | 12 | 31 | 21 | 45 | 礸/mg?1 Hr | Valid | NaN |
2012-12-31 22:00 | Beijing | PM2.5 | 2012 | 12 | 31 | 22 | 39 | 礸/mg?1 Hr | Valid | NaN |
2012-12-31 23:00 | Beijing | PM2.5 | 2012 | 12 | 31 | 23 | 35 | 礸/mg?1 Hr | Valid | NaN |
8784 rows × 10 columns
bj2012.reset_index(inplace = True) # 将索引全部还原为变量
bj2012
Year | Month | Day | Hour | Site | Parameter | Date (LST) | Value | Unit | Duration | QC Name | |
---|---|---|---|---|---|---|---|---|---|---|---|
0 | 2012 | 1 | 1 | 0 | Beijing | PM2.5 | 2012-1-1 0:00 | 303 | 礸/mg? | 1 Hr | Valid |
1 | 2012 | 1 | 1 | 1 | Beijing | PM2.5 | 2012-1-1 1:00 | 215 | 礸/mg? | 1 Hr | Valid |
2 | 2012 | 1 | 1 | 2 | Beijing | PM2.5 | 2012-1-1 2:00 | 222 | 礸/mg? | 1 Hr | Valid |
3 | 2012 | 1 | 1 | 3 | Beijing | PM2.5 | 2012-1-1 3:00 | 85 | 礸/mg? | 1 Hr | Valid |
4 | 2012 | 1 | 1 | 4 | Beijing | PM2.5 | 2012-1-1 4:00 | 38 | 礸/mg? | 1 Hr | Valid |
... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
8779 | 2012 | 12 | 31 | 19 | Beijing | PM2.5 | 2012-12-31 19:00 | 131 | 礸/mg?1 Hr | Valid | NaN |
8780 | 2012 | 12 | 31 | 20 | Beijing | PM2.5 | 2012-12-31 20:00 | 113 | 礸/mg?1 Hr | Valid | NaN |
8781 | 2012 | 12 | 31 | 21 | Beijing | PM2.5 | 2012-12-31 21:00 | 45 | 礸/mg?1 Hr | Valid | NaN |
8782 | 2012 | 12 | 31 | 22 | Beijing | PM2.5 | 2012-12-31 22:00 | 39 | 礸/mg?1 Hr | Valid | NaN |
8783 | 2012 | 12 | 31 | 23 | Beijing | PM2.5 | 2012-12-31 23:00 | 35 | 礸/mg?1 Hr | Valid | NaN |
8784 rows × 11 columns
bj2012_new2 = bj2012.set_index(['Year','Month','Day','Hour'], drop = True)
bj2012_new2
Site | Parameter | Date (LST) | Value | Unit | Duration | QC Name | ||||
---|---|---|---|---|---|---|---|---|---|---|
Year | Month | Day | Hour | |||||||
2012 | 1 | 1 | 0 | Beijing | PM2.5 | 2012-1-1 0:00 | 303 | 礸/mg? | 1 Hr | Valid |
1 | Beijing | PM2.5 | 2012-1-1 1:00 | 215 | 礸/mg? | 1 Hr | Valid | |||
2 | Beijing | PM2.5 | 2012-1-1 2:00 | 222 | 礸/mg? | 1 Hr | Valid | |||
3 | Beijing | PM2.5 | 2012-1-1 3:00 | 85 | 礸/mg? | 1 Hr | Valid | |||
4 | Beijing | PM2.5 | 2012-1-1 4:00 | 38 | 礸/mg? | 1 Hr | Valid | |||
... | ... | ... | ... | ... | ... | ... | ... | ... | ... | |
12 | 31 | 19 | Beijing | PM2.5 | 2012-12-31 19:00 | 131 | 礸/mg?1 Hr | Valid | NaN | |
20 | Beijing | PM2.5 | 2012-12-31 20:00 | 113 | 礸/mg?1 Hr | Valid | NaN | |||
21 | Beijing | PM2.5 | 2012-12-31 21:00 | 45 | 礸/mg?1 Hr | Valid | NaN | |||
22 | Beijing | PM2.5 | 2012-12-31 22:00 | 39 | 礸/mg?1 Hr | Valid | NaN | |||
23 | Beijing | PM2.5 | 2012-12-31 23:00 | 35 | 礸/mg?1 Hr | Valid | NaN |
8784 rows × 7 columns
bj2012_new2.index.names = ['年', '月','日','小时'] # None代表无名称
bj2012_new2
Site | Parameter | Date (LST) | Value | Unit | Duration | QC Name | ||||
---|---|---|---|---|---|---|---|---|---|---|
年 | 月 | 日 | 小时 | |||||||
2012 | 1 | 1 | 0 | Beijing | PM2.5 | 2012-1-1 0:00 | 303 | 礸/mg? | 1 Hr | Valid |
1 | Beijing | PM2.5 | 2012-1-1 1:00 | 215 | 礸/mg? | 1 Hr | Valid | |||
2 | Beijing | PM2.5 | 2012-1-1 2:00 | 222 | 礸/mg? | 1 Hr | Valid | |||
3 | Beijing | PM2.5 | 2012-1-1 3:00 | 85 | 礸/mg? | 1 Hr | Valid | |||
4 | Beijing | PM2.5 | 2012-1-1 4:00 | 38 | 礸/mg? | 1 Hr | Valid | |||
... | ... | ... | ... | ... | ... | ... | ... | ... | ... | |
12 | 31 | 19 | Beijing | PM2.5 | 2012-12-31 19:00 | 131 | 礸/mg?1 Hr | Valid | NaN | |
20 | Beijing | PM2.5 | 2012-12-31 20:00 | 113 | 礸/mg?1 Hr | Valid | NaN | |||
21 | Beijing | PM2.5 | 2012-12-31 21:00 | 45 | 礸/mg?1 Hr | Valid | NaN | |||
22 | Beijing | PM2.5 | 2012-12-31 22:00 | 39 | 礸/mg?1 Hr | Valid | NaN | |||
23 | Beijing | PM2.5 | 2012-12-31 23:00 | 35 | 礸/mg?1 Hr | Valid | NaN |
8784 rows × 7 columns
df.sort_index(
axis = 0 : 针对行/列方向排序,{0 or ‘index’, 1 or ‘columns’}
level : (多重索引时)指定用于排序的级别顺序号/名称
ascending = True : 是否为升序排列,多列时以表形式提供,默认为升序
inplace = False
na_position = ‘last’: 缺失值的排列顺序,first/last
ignore_index = False : 如果忽略原有索引,则索引会被重置为0, 1, …, n - 1,1.0.0版新增
key = None : 在排序前对索引值应用指定的key函数,1.1.0版新增
)
df2 = pd.read_excel("高校信息.xlsx", sheet_name = 0)
df2.set_index(['类型','学校名称'], inplace = True)
df2
名次 | 总分 | 所在省份 | 所在城市 | 办学方向 | 主管部门 | ||
---|---|---|---|---|---|---|---|
类型 | 学校名称 | ||||||
综合 | 北京大学 | 1 | 100.00 | 北京 | 北京市 | 中国研究型 | 教育部 |
理工 | 清华大学 | 2 | 98.50 | 北京 | 北京市 | 中国研究型 | 教育部 |
综合 | 复旦大学 | 3 | 82.79 | 上海 | 上海市 | 中国研究型 | 教育部 |
武汉大学 | 4 | 82.43 | 湖北 | 武汉市 | 中国研究型 | 教育部 | |
浙江大学 | 5 | 82.38 | 浙江 | 杭州市 | 中国研究型 | 教育部 | |
... | ... | ... | ... | ... | ... | ... | ... |
师范 | 浙江师范大学 | 96 | 63.37 | 浙江 | 金华市 | 区域特色研究型 | 浙江省 |
综合 | 安徽大学 | 97 | 63.34 | 安徽 | 合肥市 | 区域研究型 | 安徽省 |
医药 | 首都医科大学 | 98 | 63.32 | 北京 | 北京市 | 区域特色研究型 | 北京市 |
综合 | 江南大学 | 99 | 63.31 | 江苏 | 无锡市 | 区域特色研究型 | 教育部 |
山西大学 | 100 | 63.29 | 山西 | 太原市 | 区域研究型 | 山西省 |
100 rows × 6 columns
df2 = pd.read_excel("高校信息.xlsx", sheet_name = 0)
df2.set_index(['类型','学校名称'], inplace = True)
df2
名次 | 总分 | 所在省份 | 所在城市 | 办学方向 | 主管部门 | ||
---|---|---|---|---|---|---|---|
类型 | 学校名称 | ||||||
综合 | 北京大学 | 1 | 100.00 | 北京 | 北京市 | 中国研究型 | 教育部 |
理工 | 清华大学 | 2 | 98.50 | 北京 | 北京市 | 中国研究型 | 教育部 |
综合 | 复旦大学 | 3 | 82.79 | 上海 | 上海市 | 中国研究型 | 教育部 |
武汉大学 | 4 | 82.43 | 湖北 | 武汉市 | 中国研究型 | 教育部 | |
浙江大学 | 5 | 82.38 | 浙江 | 杭州市 | 中国研究型 | 教育部 | |
... | ... | ... | ... | ... | ... | ... | ... |
师范 | 浙江师范大学 | 96 | 63.37 | 浙江 | 金华市 | 区域特色研究型 | 浙江省 |
综合 | 安徽大学 | 97 | 63.34 | 安徽 | 合肥市 | 区域研究型 | 安徽省 |
医药 | 首都医科大学 | 98 | 63.32 | 北京 | 北京市 | 区域特色研究型 | 北京市 |
综合 | 江南大学 | 99 | 63.31 | 江苏 | 无锡市 | 区域特色研究型 | 教育部 |
山西大学 | 100 | 63.29 | 山西 | 太原市 | 区域研究型 | 山西省 |
100 rows × 6 columns
df2.sort_index()
名次 | 总分 | 所在省份 | 所在城市 | 办学方向 | 主管部门 | ||
---|---|---|---|---|---|---|---|
类型 | 学校名称 | ||||||
农林 | 中国农业大学 | 32 | 68.05 | 北京 | 北京市 | 行业特色研究型 | 教育部 |
北京林业大学 | 88 | 63.79 | 北京 | 北京市 | 行业特色研究型 | 教育部 | |
华中农业大学 | 49 | 65.77 | 湖北 | 武汉市 | 行业特色研究型 | 教育部 | |
华南农业大学 | 95 | 63.64 | 广东 | 广州市 | 区域特色研究型 | 广东省 | |
南京农业大学 | 46 | 65.90 | 江苏 | 南京市 | 行业特色研究型 | 教育部 | |
... | ... | ... | ... | ... | ... | ... | ... |
财经 | 上海财经大学 | 64 | 64.96 | 上海 | 上海市 | 行业特色研究型 | 教育部 |
中南财经政法大学 | 76 | 64.32 | 湖北 | 武汉市 | 行业特色研究型 | 教育部 | |
中央财经大学 | 82 | 63.99 | 北京 | 北京市 | 区域特色研究型 | 教育部 | |
对外经济贸易大学 | 90 | 63.77 | 北京 | 北京市 | 区域特色研究型 | 教育部 | |
西南财经大学 | 77 | 64.27 | 四川 | 成都市 | 区域特色研究型 | 教育部 |
100 rows × 6 columns
df2.sort_index(ascending = [True, False])
名次 | 总分 | 所在省份 | 所在城市 | 办学方向 | 主管部门 | ||
---|---|---|---|---|---|---|---|
类型 | 学校名称 | ||||||
农林 | 西北农林科技大学 | 65 | 64.92 | 陕西 | 咸阳市 | 行业特色研究型 | 教育部 |
南京农业大学 | 46 | 65.90 | 江苏 | 南京市 | 行业特色研究型 | 教育部 | |
华南农业大学 | 95 | 63.64 | 广东 | 广州市 | 区域特色研究型 | 广东省 | |
华中农业大学 | 49 | 65.77 | 湖北 | 武汉市 | 行业特色研究型 | 教育部 | |
北京林业大学 | 88 | 63.79 | 北京 | 北京市 | 行业特色研究型 | 教育部 | |
... | ... | ... | ... | ... | ... | ... | ... |
财经 | 西南财经大学 | 77 | 64.27 | 四川 | 成都市 | 区域特色研究型 | 教育部 |
对外经济贸易大学 | 90 | 63.77 | 北京 | 北京市 | 区域特色研究型 | 教育部 | |
中央财经大学 | 82 | 63.99 | 北京 | 北京市 | 区域特色研究型 | 教育部 | |
中南财经政法大学 | 76 | 64.32 | 湖北 | 武汉市 | 行业特色研究型 | 教育部 | |
上海财经大学 | 64 | 64.96 | 上海 | 上海市 | 行业特色研究型 | 教育部 |
100 rows × 6 columns
df2.sort_index(level = '学校名称')
名次 | 总分 | 所在省份 | 所在城市 | 办学方向 | 主管部门 | ||
---|---|---|---|---|---|---|---|
类型 | 学校名称 | ||||||
综合 | 上海交通大学 | 7 | 81.76 | 上海 | 上海市 | 中国研究型 | 教育部 |
上海大学 | 75 | 64.41 | 上海 | 上海市 | 区域研究型 | 上海市 | |
财经 | 上海财经大学 | 64 | 64.96 | 上海 | 上海市 | 行业特色研究型 | 教育部 |
理工 | 东北大学 | 26 | 69.55 | 辽宁 | 沈阳市 | 中国研究型 | 教育部 |
师范 | 东北师范大学 | 40 | 66.50 | 吉林 | 长春市 | 行业特色研究型 | 教育部 |
... | ... | ... | ... | ... | ... | ... | ... |
综合 | 重庆大学 | 27 | 69.54 | 重庆 | 重庆市 | 中国研究型 | 教育部 |
理工 | 长安大学 | 42 | 66.08 | 陕西 | 西安市 | 行业特色研究型 | 教育部 |
师范 | 陕西师范大学 | 86 | 63.88 | 陕西 | 西安市 | 区域特色研究型 | 教育部 |
医药 | 首都医科大学 | 98 | 63.32 | 北京 | 北京市 | 区域特色研究型 | 北京市 |
师范 | 首都师范大学 | 92 | 63.73 | 北京 | 北京市 | 区域特色研究型 | 北京市 |
100 rows × 6 columns
df2.sort_index(level = '学校名称', ignore_index = True)
名次 | 总分 | 所在省份 | 所在城市 | 办学方向 | 主管部门 | |
---|---|---|---|---|---|---|
0 | 7 | 81.76 | 上海 | 上海市 | 中国研究型 | 教育部 |
1 | 75 | 64.41 | 上海 | 上海市 | 区域研究型 | 上海市 |
2 | 64 | 64.96 | 上海 | 上海市 | 行业特色研究型 | 教育部 |
3 | 26 | 69.55 | 辽宁 | 沈阳市 | 中国研究型 | 教育部 |
4 | 40 | 66.50 | 吉林 | 长春市 | 行业特色研究型 | 教育部 |
... | ... | ... | ... | ... | ... | ... |
95 | 27 | 69.54 | 重庆 | 重庆市 | 中国研究型 | 教育部 |
96 | 42 | 66.08 | 陕西 | 西安市 | 行业特色研究型 | 教育部 |
97 | 86 | 63.88 | 陕西 | 西安市 | 区域特色研究型 | 教育部 |
98 | 98 | 63.32 | 北京 | 北京市 | 区域特色研究型 | 北京市 |
99 | 92 | 63.73 | 北京 | 北京市 | 区域特色研究型 | 北京市 |
100 rows × 6 columns
# 只使用学校名称的前两个字排序
df2.sort_index(level = '学校名称', key = lambda x: x.str[:2])
名次 | 总分 | 所在省份 | 所在城市 | 办学方向 | 主管部门 | ||
---|---|---|---|---|---|---|---|
类型 | 学校名称 | ||||||
综合 | 上海交通大学 | 7 | 81.76 | 上海 | 上海市 | 中国研究型 | 教育部 |
上海大学 | 75 | 64.41 | 上海 | 上海市 | 区域研究型 | 上海市 | |
财经 | 上海财经大学 | 64 | 64.96 | 上海 | 上海市 | 行业特色研究型 | 教育部 |
师范 | 东北师范大学 | 40 | 66.50 | 吉林 | 长春市 | 行业特色研究型 | 教育部 |
理工 | 东北大学 | 26 | 69.55 | 辽宁 | 沈阳市 | 中国研究型 | 教育部 |
... | ... | ... | ... | ... | ... | ... | ... |
综合 | 重庆大学 | 27 | 69.54 | 重庆 | 重庆市 | 中国研究型 | 教育部 |
理工 | 长安大学 | 42 | 66.08 | 陕西 | 西安市 | 行业特色研究型 | 教育部 |
师范 | 陕西师范大学 | 86 | 63.88 | 陕西 | 西安市 | 区域特色研究型 | 教育部 |
医药 | 首都医科大学 | 98 | 63.32 | 北京 | 北京市 | 区域特色研究型 | 北京市 |
师范 | 首都师范大学 | 92 | 63.73 | 北京 | 北京市 | 区域特色研究型 | 北京市 |
100 rows × 6 columns
df.sort_values(
by : 指定用于排序的变量名,多列时以列表形式提供
axis = 0 : 针对行/列方向排序,{0 or ‘index’, 1 or ‘columns’}
ascending = True : 是否为升序排列
inplace = False :
na_position = ‘last’: 缺失值的排列顺序,first/last
ignore_index = False : 如果忽略原有索引,则索引会被重置为0, 1, …, n - 1,1.0.0版新增
key = None : 在排序前对索引值应用指定的key函数,1.1.0版新增
)
df2.sort_values(['所在省份','所在城市'], 0, False)
名次 | 总分 | 所在省份 | 所在城市 | 办学方向 | 主管部门 | ||
---|---|---|---|---|---|---|---|
类型 | 学校名称 | ||||||
理工 | 哈尔滨工业大学 | 21 | 72.72 | 黑龙江 | 哈尔滨市 | 中国研究型 | 工业和信息化部 |
哈尔滨工程大学 | 57 | 65.41 | 黑龙江 | 哈尔滨市 | 行业特色研究型 | 工业和信息化部 | |
综合 | 西安交通大学 | 17 | 73.56 | 陕西 | 西安市 | 中国研究型 | 教育部 |
理工 | 西北工业大学 | 35 | 67.77 | 陕西 | 西安市 | 中国研究型 | 工业和信息化部 |
长安大学 | 42 | 66.08 | 陕西 | 西安市 | 行业特色研究型 | 教育部 | |
... | ... | ... | ... | ... | ... | ... | |
华东理工大学 | 48 | 65.79 | 上海 | 上海市 | 行业特色研究型 | 教育部 | |
财经 | 上海财经大学 | 64 | 64.96 | 上海 | 上海市 | 行业特色研究型 | 教育部 |
综合 | 上海大学 | 75 | 64.41 | 上海 | 上海市 | 区域研究型 | 上海市 |
理工 | 东华大学 | 79 | 64.24 | 上海 | 上海市 | 行业特色研究型 | 教育部 |
医药 | 第二军医大学 | 71 | 64.74 | 上海 | 上海 | 行业特色研究型 |
100 rows × 6 columns
筛选操作的实质:基于T/F值进行筛选
df.iloc
意为integer-location,即按照行列序号进行检索
可以同时指定行列,指定列时,需要先用","表明为列序号,前行后列
df.iat
本质上和iloc是一回事,可以看作别名
df2.iloc[0:3] # 不包括右侧界值,切片本身代表列表,如果再加上[]会报错
名次 | 总分 | 所在省份 | 所在城市 | 办学方向 | 主管部门 | ||
---|---|---|---|---|---|---|---|
类型 | 学校名称 | ||||||
综合 | 北京大学 | 1 | 100.00 | 北京 | 北京市 | 中国研究型 | 教育部 |
理工 | 清华大学 | 2 | 98.50 | 北京 | 北京市 | 中国研究型 | 教育部 |
综合 | 复旦大学 | 3 | 82.79 | 上海 | 上海市 | 中国研究型 | 教育部 |
df2.iloc[[0,3]]
名次 | 总分 | 所在省份 | 所在城市 | 办学方向 | 主管部门 | ||
---|---|---|---|---|---|---|---|
类型 | 学校名称 | ||||||
综合 | 北京大学 | 1 | 100.00 | 北京 | 北京市 | 中国研究型 | 教育部 |
武汉大学 | 4 | 82.43 | 湖北 | 武汉市 | 中国研究型 | 教育部 |
df2.iloc[:,0:3] # 只指定列范围,不包括右侧边界,前面的:不能省略,否则会认为这是空参
名次 | 总分 | 所在省份 | ||
---|---|---|---|---|
类型 | 学校名称 | |||
综合 | 北京大学 | 1 | 100.00 | 北京 |
理工 | 清华大学 | 2 | 98.50 | 北京 |
综合 | 复旦大学 | 3 | 82.79 | 上海 |
武汉大学 | 4 | 82.43 | 湖北 | |
浙江大学 | 5 | 82.38 | 浙江 | |
... | ... | ... | ... | ... |
师范 | 浙江师范大学 | 96 | 63.37 | 浙江 |
综合 | 安徽大学 | 97 | 63.34 | 安徽 |
医药 | 首都医科大学 | 98 | 63.32 | 北京 |
综合 | 江南大学 | 99 | 63.31 | 江苏 |
山西大学 | 100 | 63.29 | 山西 |
100 rows × 3 columns
df2.iloc[1:4,[0,3]] # 同时指定行列范围
名次 | 所在城市 | ||
---|---|---|---|
类型 | 学校名称 | ||
理工 | 清华大学 | 2 | 北京市 |
综合 | 复旦大学 | 3 | 上海市 |
武汉大学 | 4 | 武汉市 |
df.loc
按照给出的索引值进行筛选
筛选范围包括上下界值
出现未知索引值时会报错
df.at
本质上和loc是一回事,可以看作别名
df2 = pd.read_excel("高校信息.xlsx",
sheet_name = "full", index_col = '名次')
df2
学校名称 | 总分 | 类型 | 所在省份 | 所在城市 | 办学方向 | 主管部门 | |
---|---|---|---|---|---|---|---|
名次 | |||||||
1 | 北京大学 | 100.00 | 综合 | 北京 | 北京市 | 中国研究型 | 教育部 |
2 | 清华大学 | 98.50 | 理工 | 北京 | 北京市 | 中国研究型 | 教育部 |
3 | 复旦大学 | 82.79 | 综合 | 上海 | 上海市 | 中国研究型 | 教育部 |
4 | 武汉大学 | 82.43 | 综合 | 湖北 | 武汉市 | 中国研究型 | 教育部 |
5 | 浙江大学 | 82.38 | 综合 | 浙江 | 杭州市 | 中国研究型 | 教育部 |
... | ... | ... | ... | ... | ... | ... | ... |
96 | 浙江师范大学 | 63.37 | 师范 | 浙江 | 金华市 | 区域特色研究型 | 浙江省 |
97 | 安徽大学 | 63.34 | 综合 | 安徽 | 合肥市 | 区域研究型 | 安徽省 |
98 | 首都医科大学 | 63.32 | 医药 | 北京 | 北京市 | 区域特色研究型 | 北京市 |
99 | 江南大学 | 63.31 | 综合 | 江苏 | 无锡市 | 区域特色研究型 | 教育部 |
100 | 山西大学 | 63.29 | 综合 | 山西 | 太原市 | 区域研究型 | 山西省 |
100 rows × 7 columns
df2.loc[2:4] # 切片本身就是一个列表,因此不需要加[]
学校名称 | 总分 | 类型 | 所在省份 | 所在城市 | 办学方向 | 主管部门 | |
---|---|---|---|---|---|---|---|
名次 | |||||||
2 | 清华大学 | 98.50 | 理工 | 北京 | 北京市 | 中国研究型 | 教育部 |
3 | 复旦大学 | 82.79 | 综合 | 上海 | 上海市 | 中国研究型 | 教育部 |
4 | 武汉大学 | 82.43 | 综合 | 湖北 | 武汉市 | 中国研究型 | 教育部 |
df2 = pd.read_excel("高校信息.xlsx",
sheet_name = "full", index_col = '学校名称')
df2
名次 | 总分 | 类型 | 所在省份 | 所在城市 | 办学方向 | 主管部门 | |
---|---|---|---|---|---|---|---|
学校名称 | |||||||
北京大学 | 1 | 100.00 | 综合 | 北京 | 北京市 | 中国研究型 | 教育部 |
清华大学 | 2 | 98.50 | 理工 | 北京 | 北京市 | 中国研究型 | 教育部 |
复旦大学 | 3 | 82.79 | 综合 | 上海 | 上海市 | 中国研究型 | 教育部 |
武汉大学 | 4 | 82.43 | 综合 | 湖北 | 武汉市 | 中国研究型 | 教育部 |
浙江大学 | 5 | 82.38 | 综合 | 浙江 | 杭州市 | 中国研究型 | 教育部 |
... | ... | ... | ... | ... | ... | ... | ... |
浙江师范大学 | 96 | 63.37 | 师范 | 浙江 | 金华市 | 区域特色研究型 | 浙江省 |
安徽大学 | 97 | 63.34 | 综合 | 安徽 | 合肥市 | 区域研究型 | 安徽省 |
首都医科大学 | 98 | 63.32 | 医药 | 北京 | 北京市 | 区域特色研究型 | 北京市 |
江南大学 | 99 | 63.31 | 综合 | 江苏 | 无锡市 | 区域特色研究型 | 教育部 |
山西大学 | 100 | 63.29 | 综合 | 山西 | 太原市 | 区域研究型 | 山西省 |
100 rows × 7 columns
df2.loc['北京大学':'复旦大学']
名次 | 总分 | 类型 | 所在省份 | 所在城市 | 办学方向 | 主管部门 | |
---|---|---|---|---|---|---|---|
学校名称 | |||||||
北京大学 | 1 | 100.00 | 综合 | 北京 | 北京市 | 中国研究型 | 教育部 |
清华大学 | 2 | 98.50 | 理工 | 北京 | 北京市 | 中国研究型 | 教育部 |
复旦大学 | 3 | 82.79 | 综合 | 上海 | 上海市 | 中国研究型 | 教育部 |
df2.loc[['北京大学', '复旦大学']]
名次 | 总分 | 类型 | 所在省份 | 所在城市 | 办学方向 | 主管部门 | |
---|---|---|---|---|---|---|---|
学校名称 | |||||||
北京大学 | 1 | 100.00 | 综合 | 北京 | 北京市 | 中国研究型 | 教育部 |
复旦大学 | 3 | 82.79 | 综合 | 上海 | 上海市 | 中国研究型 | 教育部 |
df2.loc[['北京大学','复旦大学'],['名次','所在省份','总分']]
名次 | 所在省份 | 总分 | |
---|---|---|---|
学校名称 | |||
北京大学 | 1 | 北京 | 100.00 |
复旦大学 | 3 | 上海 | 82.79 |
针对多重索引的行筛选命令
df.xs(key, axis=0, level=None, drop_level=True)
(指定具体检索用的多重索引级别)
df.IndexSlice #目前不推荐使用
df2 = pd.read_excel("高校信息.xlsx",
sheet_name = "full", index_col = [3, 1])
df2
名次 | 总分 | 所在省份 | 所在城市 | 办学方向 | 主管部门 | ||
---|---|---|---|---|---|---|---|
类型 | 学校名称 | ||||||
综合 | 北京大学 | 1 | 100.00 | 北京 | 北京市 | 中国研究型 | 教育部 |
理工 | 清华大学 | 2 | 98.50 | 北京 | 北京市 | 中国研究型 | 教育部 |
综合 | 复旦大学 | 3 | 82.79 | 上海 | 上海市 | 中国研究型 | 教育部 |
武汉大学 | 4 | 82.43 | 湖北 | 武汉市 | 中国研究型 | 教育部 | |
浙江大学 | 5 | 82.38 | 浙江 | 杭州市 | 中国研究型 | 教育部 | |
... | ... | ... | ... | ... | ... | ... | ... |
师范 | 浙江师范大学 | 96 | 63.37 | 浙江 | 金华市 | 区域特色研究型 | 浙江省 |
综合 | 安徽大学 | 97 | 63.34 | 安徽 | 合肥市 | 区域研究型 | 安徽省 |
医药 | 首都医科大学 | 98 | 63.32 | 北京 | 北京市 | 区域特色研究型 | 北京市 |
综合 | 江南大学 | 99 | 63.31 | 江苏 | 无锡市 | 区域特色研究型 | 教育部 |
山西大学 | 100 | 63.29 | 山西 | 太原市 | 区域研究型 | 山西省 |
100 rows × 6 columns
df2.loc[['财经','师范']] # 只使用最高级别的索引检索,进行筛选
名次 | 总分 | 所在省份 | 所在城市 | 办学方向 | 主管部门 | ||
---|---|---|---|---|---|---|---|
类型 | 学校名称 | ||||||
师范 | 北京师范大学 | 15 | 74.75 | 北京 | 北京市 | 中国研究型 | 教育部 |
华东师范大学 | 28 | 69.52 | 上海 | 上海市 | 中国研究型 | 教育部 | |
华中师范大学 | 34 | 67.92 | 湖北 | 武汉市 | 中国研究型 | 教育部 | |
东北师范大学 | 40 | 66.50 | 吉林 | 长春市 | 行业特色研究型 | 教育部 | |
南京师范大学 | 50 | 65.71 | 江苏 | 南京市 | 区域特色研究型 | 江苏省 | |
... | ... | ... | ... | ... | ... | ... | ... |
财经 | 中央财经大学 | 82 | 63.99 | 北京 | 北京市 | 区域特色研究型 | 教育部 |
师范 | 陕西师范大学 | 86 | 63.88 | 陕西 | 西安市 | 区域特色研究型 | 教育部 |
财经 | 对外经济贸易大学 | 90 | 63.77 | 北京 | 北京市 | 区域特色研究型 | 教育部 |
师范 | 首都师范大学 | 92 | 63.73 | 北京 | 北京市 | 区域特色研究型 | 北京市 |
浙江师范大学 | 96 | 63.37 | 浙江 | 金华市 | 区域特色研究型 | 浙江省 |
16 rows × 6 columns
df2.loc[[('财经','中央财经大学'),('综合','北京大学')]] # 完整检索,注意()元组
#格式不要错
名次 | 总分 | 所在省份 | 所在城市 | 办学方向 | 主管部门 | ||
---|---|---|---|---|---|---|---|
类型 | 学校名称 | ||||||
财经 | 中央财经大学 | 82 | 63.99 | 北京 | 北京市 | 区域特色研究型 | 教育部 |
综合 | 北京大学 | 1 | 100.00 | 北京 | 北京市 | 中国研究型 | 教育部 |
df2.xs('中央财经大学', level = 1, drop_level = False)
名次 | 总分 | 所在省份 | 所在城市 | 办学方向 | 主管部门 | ||
---|---|---|---|---|---|---|---|
类型 | 学校名称 | ||||||
财经 | 中央财经大学 | 82 | 63.99 | 北京 | 北京市 | 区域特色研究型 | 教育部 |
按照数据范围进行筛选
df[筛选条件]
df2[df2.名次 > 10]
名次 | 总分 | 所在省份 | 所在城市 | 办学方向 | 主管部门 | ||
---|---|---|---|---|---|---|---|
类型 | 学校名称 | ||||||
综合 | 吉林大学 | 11 | 76.01 | 吉林 | 长春市 | 中国研究型 | 教育部 |
理工 | 中国科学技术大学 | 12 | 75.14 | 安徽 | 合肥市 | 中国研究型 | 中国科学院 |
华中科技大学 | 13 | 75.12 | 湖北 | 武汉市 | 中国研究型 | 教育部 | |
综合 | 四川大学 | 14 | 74.99 | 四川 | 成都市 | 中国研究型 | 教育部 |
师范 | 北京师范大学 | 15 | 74.75 | 北京 | 北京市 | 中国研究型 | 教育部 |
... | ... | ... | ... | ... | ... | ... | |
浙江师范大学 | 96 | 63.37 | 浙江 | 金华市 | 区域特色研究型 | 浙江省 | |
综合 | 安徽大学 | 97 | 63.34 | 安徽 | 合肥市 | 区域研究型 | 安徽省 |
医药 | 首都医科大学 | 98 | 63.32 | 北京 | 北京市 | 区域特色研究型 | 北京市 |
综合 | 江南大学 | 99 | 63.31 | 江苏 | 无锡市 | 区域特色研究型 | 教育部 |
山西大学 | 100 | 63.29 | 山西 | 太原市 | 区域研究型 | 山西省 |
90 rows × 6 columns
列表筛选
df.isin(values)
返回结果为相应的位置是否匹配给出的values
values为序列:对应每个具体值
values为字典:对应各个变量名称
values为数据框:同时对应数值和变量名称
df2.loc[df2.名次.isin([1, 3, 5])]#[]内是给出索引,后再用引用索引,不能用iloc哦
名次 | 学校名称 | 总分 | 类型 | 所在省份 | 所在城市 | 办学方向 | 主管部门 | |
---|---|---|---|---|---|---|---|---|
0 | 1 | 北京大学 | 100.00 | 综合 | 北京 | 北京市 | 中国研究型 | 教育部 |
2 | 3 | 复旦大学 | 82.79 | 综合 | 上海 | 上海市 | 中国研究型 | 教育部 |
4 | 5 | 浙江大学 | 82.38 | 综合 | 浙江 | 杭州市 | 中国研究型 | 教育部 |
df2[df2.名次.isin([1, 3, 5])]
名次 | 总分 | 所在省份 | 所在城市 | 办学方向 | 主管部门 | ||
---|---|---|---|---|---|---|---|
类型 | 学校名称 | ||||||
综合 | 北京大学 | 1 | 100.00 | 北京 | 北京市 | 中国研究型 | 教育部 |
复旦大学 | 3 | 82.79 | 上海 | 上海市 | 中国研究型 | 教育部 | |
浙江大学 | 5 | 82.38 | 浙江 | 杭州市 | 中国研究型 | 教育部 |
df2[df2.所在省份.isin(['北京','上海'])]
名次 | 总分 | 所在省份 | 所在城市 | 办学方向 | 主管部门 | ||
---|---|---|---|---|---|---|---|
类型 | 学校名称 | ||||||
综合 | 北京大学 | 1 | 100.00 | 北京 | 北京市 | 中国研究型 | 教育部 |
理工 | 清华大学 | 2 | 98.50 | 北京 | 北京市 | 中国研究型 | 教育部 |
综合 | 复旦大学 | 3 | 82.79 | 上海 | 上海市 | 中国研究型 | 教育部 |
中国人民大学 | 6 | 81.98 | 北京 | 北京市 | 中国研究型 | 教育部 | |
上海交通大学 | 7 | 81.76 | 上海 | 上海市 | 中国研究型 | 教育部 | |
... | ... | ... | ... | ... | ... | ... | ... |
民族 | 中央民族大学 | 89 | 63.78 | 北京 | 北京市 | 行业特色研究型 | 国家民委 |
财经 | 对外经济贸易大学 | 90 | 63.77 | 北京 | 北京市 | 区域特色研究型 | 教育部 |
师范 | 首都师范大学 | 92 | 63.73 | 北京 | 北京市 | 区域特色研究型 | 北京市 |
理工 | 华北电力大学 | 93 | 63.66 | 北京 | 北京市 | 区域特色研究型 | 教育部 |
医药 | 首都医科大学 | 98 | 63.32 | 北京 | 北京市 | 区域特色研究型 | 北京市 |
31 rows × 6 columns
df2 = pd.read_excel("高校信息.xlsx",
sheet_name = "full", index_col = '类型')
df2[df2.index.isin(['财经', '师范'])]
名次 | 学校名称 | 总分 | 所在省份 | 所在城市 | 办学方向 | 主管部门 | |
---|---|---|---|---|---|---|---|
类型 | |||||||
师范 | 15 | 北京师范大学 | 74.75 | 北京 | 北京市 | 中国研究型 | 教育部 |
师范 | 28 | 华东师范大学 | 69.52 | 上海 | 上海市 | 中国研究型 | 教育部 |
师范 | 34 | 华中师范大学 | 67.92 | 湖北 | 武汉市 | 中国研究型 | 教育部 |
师范 | 40 | 东北师范大学 | 66.50 | 吉林 | 长春市 | 行业特色研究型 | 教育部 |
师范 | 50 | 南京师范大学 | 65.71 | 江苏 | 南京市 | 区域特色研究型 | 江苏省 |
... | ... | ... | ... | ... | ... | ... | ... |
财经 | 82 | 中央财经大学 | 63.99 | 北京 | 北京市 | 区域特色研究型 | 教育部 |
师范 | 86 | 陕西师范大学 | 63.88 | 陕西 | 西安市 | 区域特色研究型 | 教育部 |
财经 | 90 | 对外经济贸易大学 | 63.77 | 北京 | 北京市 | 区域特色研究型 | 教育部 |
师范 | 92 | 首都师范大学 | 63.73 | 北京 | 北京市 | 区域特色研究型 | 北京市 |
师范 | 96 | 浙江师范大学 | 63.37 | 浙江 | 金华市 | 区域特色研究型 | 浙江省 |
16 rows × 7 columns
df2[(df2.名次 > 10) & (df2.名次 < 90)] # 必须使用(),并且用&连接
名次 | 学校名称 | 总分 | 所在省份 | 所在城市 | 办学方向 | 主管部门 | |
---|---|---|---|---|---|---|---|
类型 | |||||||
综合 | 11 | 吉林大学 | 76.01 | 吉林 | 长春市 | 中国研究型 | 教育部 |
理工 | 12 | 中国科学技术大学 | 75.14 | 安徽 | 合肥市 | 中国研究型 | 中国科学院 |
理工 | 13 | 华中科技大学 | 75.12 | 湖北 | 武汉市 | 中国研究型 | 教育部 |
综合 | 14 | 四川大学 | 74.99 | 四川 | 成都市 | 中国研究型 | 教育部 |
师范 | 15 | 北京师范大学 | 74.75 | 北京 | 北京市 | 中国研究型 | 教育部 |
... | ... | ... | ... | ... | ... | ... | ... |
综合 | 83 | 广西大学 | 63.89 | 广西 | 南宁市 | 区域研究型 | 广西壮族自治区 |
师范 | 86 | 陕西师范大学 | 63.88 | 陕西 | 西安市 | 区域特色研究型 | 教育部 |
综合 | 87 | 深圳大学 | 63.86 | 广东 | 深圳市 | 区域研究型 | 广东省 |
农林 | 88 | 北京林业大学 | 63.79 | 北京 | 北京市 | 行业特色研究型 | 教育部 |
民族 | 89 | 中央民族大学 | 63.78 | 北京 | 北京市 | 行业特色研究型 | 国家民委 |
79 rows × 7 columns
用类SQL语句进行筛选
df.query(
expr : 类SQL语句表达式
( 可以使用前缀’@'引用环境变量
等号为==,而不是=
注意:目前还不支持like语句)
inplace = False : 是否直接替换原数据框
)
用法举例:
query(’(a < b) & (b < c)’)
如果索引没有名称,df.query(‘index < b < c’)
可以进行多重索引的指定,如df.query(“code==‘600801’”)
df2.query("名次 >10 and 名次 < 90 and 类型 != '综合'")
名次 | 学校名称 | 总分 | 所在省份 | 所在城市 | 办学方向 | 主管部门 | |
---|---|---|---|---|---|---|---|
类型 | |||||||
理工 | 12 | 中国科学技术大学 | 75.14 | 安徽 | 合肥市 | 中国研究型 | 中国科学院 |
理工 | 13 | 华中科技大学 | 75.12 | 湖北 | 武汉市 | 中国研究型 | 教育部 |
师范 | 15 | 北京师范大学 | 74.75 | 北京 | 北京市 | 中国研究型 | 教育部 |
理工 | 19 | 同济大学 | 72.85 | 上海 | 上海市 | 中国研究型 | 教育部 |
理工 | 20 | 天津大学 | 72.81 | 天津 | 天津市 | 中国研究型 | 教育部 |
... | ... | ... | ... | ... | ... | ... | ... |
理工 | 83 | 北京工业大学 | 63.89 | 北京 | 北京市 | 区域研究型 | 北京市 |
理工 | 83 | 福州大学 | 63.89 | 福建 | 福州市 | 区域研究型 | 福建省 |
师范 | 86 | 陕西师范大学 | 63.88 | 陕西 | 西安市 | 区域特色研究型 | 教育部 |
农林 | 88 | 北京林业大学 | 63.79 | 北京 | 北京市 | 行业特色研究型 | 教育部 |
民族 | 89 | 中央民族大学 | 63.78 | 北京 | 北京市 | 行业特色研究型 | 国家民委 |
58 rows × 7 columns
limit = 5
df2.query("名次<=@limit & 类型 == '综合'")
名次 | 学校名称 | 总分 | 所在省份 | 所在城市 | 办学方向 | 主管部门 | |
---|---|---|---|---|---|---|---|
类型 | |||||||
综合 | 1 | 北京大学 | 100.00 | 北京 | 北京市 | 中国研究型 | 教育部 |
综合 | 3 | 复旦大学 | 82.79 | 上海 | 上海市 | 中国研究型 | 教育部 |
综合 | 4 | 武汉大学 | 82.43 | 湖北 | 武汉市 | 中国研究型 | 教育部 |
综合 | 5 | 浙江大学 | 82.38 | 浙江 | 杭州市 | 中国研究型 | 教育部 |
df2
名次 | 学校名称 | 总分 | 所在省份 | 所在城市 | 办学方向 | 主管部门 | |
---|---|---|---|---|---|---|---|
类型 | |||||||
综合 | 1 | 北京大学 | 100.00 | 北京 | 北京市 | 中国研究型 | 教育部 |
理工 | 2 | 清华大学 | 98.50 | 北京 | 北京市 | 中国研究型 | 教育部 |
综合 | 3 | 复旦大学 | 82.79 | 上海 | 上海市 | 中国研究型 | 教育部 |
综合 | 4 | 武汉大学 | 82.43 | 湖北 | 武汉市 | 中国研究型 | 教育部 |
综合 | 5 | 浙江大学 | 82.38 | 浙江 | 杭州市 | 中国研究型 | 教育部 |
... | ... | ... | ... | ... | ... | ... | ... |
师范 | 96 | 浙江师范大学 | 63.37 | 浙江 | 金华市 | 区域特色研究型 | 浙江省 |
综合 | 97 | 安徽大学 | 63.34 | 安徽 | 合肥市 | 区域研究型 | 安徽省 |
医药 | 98 | 首都医科大学 | 63.32 | 北京 | 北京市 | 区域特色研究型 | 北京市 |
综合 | 99 | 江南大学 | 63.31 | 江苏 | 无锡市 | 区域特色研究型 | 教育部 |
综合 | 100 | 山西大学 | 63.29 | 山西 | 太原市 | 区域研究型 | 山西省 |
100 rows × 7 columns
df2.query("总分 < 70 and 主管部门 == '教育部'")
名次 | 学校名称 | 总分 | 所在省份 | 所在城市 | 办学方向 | 主管部门 | |
---|---|---|---|---|---|---|---|
类型 | |||||||
理工 | 26 | 东北大学 | 69.55 | 辽宁 | 沈阳市 | 中国研究型 | 教育部 |
综合 | 27 | 重庆大学 | 69.54 | 重庆 | 重庆市 | 中国研究型 | 教育部 |
师范 | 28 | 华东师范大学 | 69.52 | 上海 | 上海市 | 中国研究型 | 教育部 |
理工 | 29 | 大连理工大学 | 68.84 | 辽宁 | 大连市 | 中国研究型 | 教育部 |
理工 | 31 | 华南理工大学 | 68.47 | 广东 | 广州市 | 中国研究型 | 教育部 |
... | ... | ... | ... | ... | ... | ... | ... |
师范 | 86 | 陕西师范大学 | 63.88 | 陕西 | 西安市 | 区域特色研究型 | 教育部 |
农林 | 88 | 北京林业大学 | 63.79 | 北京 | 北京市 | 行业特色研究型 | 教育部 |
财经 | 90 | 对外经济贸易大学 | 63.77 | 北京 | 北京市 | 区域特色研究型 | 教育部 |
理工 | 93 | 华北电力大学 | 63.66 | 北京 | 北京市 | 区域特色研究型 | 教育部 |
综合 | 99 | 江南大学 | 63.31 | 江苏 | 无锡市 | 区域特色研究型 | 教育部 |
41 rows × 7 columns
df2.reset_index(inplace = True) # 将索引全部还原为变量
df2
类型 | 名次 | 学校名称 | 总分 | 所在省份 | 所在城市 | 办学方向 | 主管部门 | |
---|---|---|---|---|---|---|---|---|
0 | 综合 | 1 | 北京大学 | 100.00 | 北京 | 北京市 | 中国研究型 | 教育部 |
1 | 理工 | 2 | 清华大学 | 98.50 | 北京 | 北京市 | 中国研究型 | 教育部 |
2 | 综合 | 3 | 复旦大学 | 82.79 | 上海 | 上海市 | 中国研究型 | 教育部 |
3 | 综合 | 4 | 武汉大学 | 82.43 | 湖北 | 武汉市 | 中国研究型 | 教育部 |
4 | 综合 | 5 | 浙江大学 | 82.38 | 浙江 | 杭州市 | 中国研究型 | 教育部 |
... | ... | ... | ... | ... | ... | ... | ... | ... |
95 | 师范 | 96 | 浙江师范大学 | 63.37 | 浙江 | 金华市 | 区域特色研究型 | 浙江省 |
96 | 综合 | 97 | 安徽大学 | 63.34 | 安徽 | 合肥市 | 区域研究型 | 安徽省 |
97 | 医药 | 98 | 首都医科大学 | 63.32 | 北京 | 北京市 | 区域特色研究型 | 北京市 |
98 | 综合 | 99 | 江南大学 | 63.31 | 江苏 | 无锡市 | 区域特色研究型 | 教育部 |
99 | 综合 | 100 | 山西大学 | 63.29 | 山西 | 太原市 | 区域研究型 | 山西省 |
100 rows × 8 columns
df_new = df2.set_index('主管部门')
df_new
类型 | 名次 | 学校名称 | 总分 | 所在省份 | 所在城市 | 办学方向 | |
---|---|---|---|---|---|---|---|
主管部门 | |||||||
教育部 | 综合 | 1 | 北京大学 | 100.00 | 北京 | 北京市 | 中国研究型 |
教育部 | 理工 | 2 | 清华大学 | 98.50 | 北京 | 北京市 | 中国研究型 |
教育部 | 综合 | 3 | 复旦大学 | 82.79 | 上海 | 上海市 | 中国研究型 |
教育部 | 综合 | 4 | 武汉大学 | 82.43 | 湖北 | 武汉市 | 中国研究型 |
教育部 | 综合 | 5 | 浙江大学 | 82.38 | 浙江 | 杭州市 | 中国研究型 |
... | ... | ... | ... | ... | ... | ... | ... |
浙江省 | 师范 | 96 | 浙江师范大学 | 63.37 | 浙江 | 金华市 | 区域特色研究型 |
安徽省 | 综合 | 97 | 安徽大学 | 63.34 | 安徽 | 合肥市 | 区域研究型 |
北京市 | 医药 | 98 | 首都医科大学 | 63.32 | 北京 | 北京市 | 区域特色研究型 |
教育部 | 综合 | 99 | 江南大学 | 63.31 | 江苏 | 无锡市 | 区域特色研究型 |
山西省 | 综合 | 100 | 山西大学 | 63.29 | 山西 | 太原市 | 区域研究型 |
100 rows × 7 columns
df_new.query("总分 < 70 and 主管部门 == '教育部'")
类型 | 名次 | 学校名称 | 总分 | 所在省份 | 所在城市 | 办学方向 | |
---|---|---|---|---|---|---|---|
主管部门 | |||||||
教育部 | 理工 | 26 | 东北大学 | 69.55 | 辽宁 | 沈阳市 | 中国研究型 |
教育部 | 综合 | 27 | 重庆大学 | 69.54 | 重庆 | 重庆市 | 中国研究型 |
教育部 | 师范 | 28 | 华东师范大学 | 69.52 | 上海 | 上海市 | 中国研究型 |
教育部 | 理工 | 29 | 大连理工大学 | 68.84 | 辽宁 | 大连市 | 中国研究型 |
教育部 | 理工 | 31 | 华南理工大学 | 68.47 | 广东 | 广州市 | 中国研究型 |
... | ... | ... | ... | ... | ... | ... | ... |
教育部 | 师范 | 86 | 陕西师范大学 | 63.88 | 陕西 | 西安市 | 区域特色研究型 |
教育部 | 农林 | 88 | 北京林业大学 | 63.79 | 北京 | 北京市 | 行业特色研究型 |
教育部 | 财经 | 90 | 对外经济贸易大学 | 63.77 | 北京 | 北京市 | 区域特色研究型 |
教育部 | 理工 | 93 | 华北电力大学 | 63.66 | 北京 | 北京市 | 区域特色研究型 |
教育部 | 综合 | 99 | 江南大学 | 63.31 | 江苏 | 无锡市 | 区域特色研究型 |
41 rows × 7 columns
bj2012
Year | Month | Day | Hour | Site | Parameter | Date (LST) | Value | Unit | Duration | QC Name | |
---|---|---|---|---|---|---|---|---|---|---|---|
0 | 2012 | 1 | 1 | 0 | Beijing | PM2.5 | 2012-1-1 0:00 | 303 | 礸/mg? | 1 Hr | Valid |
1 | 2012 | 1 | 1 | 1 | Beijing | PM2.5 | 2012-1-1 1:00 | 215 | 礸/mg? | 1 Hr | Valid |
2 | 2012 | 1 | 1 | 2 | Beijing | PM2.5 | 2012-1-1 2:00 | 222 | 礸/mg? | 1 Hr | Valid |
3 | 2012 | 1 | 1 | 3 | Beijing | PM2.5 | 2012-1-1 3:00 | 85 | 礸/mg? | 1 Hr | Valid |
4 | 2012 | 1 | 1 | 4 | Beijing | PM2.5 | 2012-1-1 4:00 | 38 | 礸/mg? | 1 Hr | Valid |
... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
8779 | 2012 | 12 | 31 | 19 | Beijing | PM2.5 | 2012-12-31 19:00 | 131 | 礸/mg?1 Hr | Valid | NaN |
8780 | 2012 | 12 | 31 | 20 | Beijing | PM2.5 | 2012-12-31 20:00 | 113 | 礸/mg?1 Hr | Valid | NaN |
8781 | 2012 | 12 | 31 | 21 | Beijing | PM2.5 | 2012-12-31 21:00 | 45 | 礸/mg?1 Hr | Valid | NaN |
8782 | 2012 | 12 | 31 | 22 | Beijing | PM2.5 | 2012-12-31 22:00 | 39 | 礸/mg?1 Hr | Valid | NaN |
8783 | 2012 | 12 | 31 | 23 | Beijing | PM2.5 | 2012-12-31 23:00 | 35 | 礸/mg?1 Hr | Valid | NaN |
8784 rows × 11 columns
bj2012.query("Value >100 and Month == 10 and Hour>9 and Hour <15 ")#注意是==号
Year | Month | Day | Hour | Site | Parameter | Date (LST) | Value | Unit | Duration | QC Name | |
---|---|---|---|---|---|---|---|---|---|---|---|
6610 | 2012 | 10 | 2 | 10 | Beijing | PM2.5 | 2012-10-2 10:00 | 140 | 礸/mg?1 Hr | Valid | NaN |
6611 | 2012 | 10 | 2 | 11 | Beijing | PM2.5 | 2012-10-2 11:00 | 145 | 礸/mg?1 Hr | Valid | NaN |
6612 | 2012 | 10 | 2 | 12 | Beijing | PM2.5 | 2012-10-2 12:00 | 145 | 礸/mg?1 Hr | Valid | NaN |
6613 | 2012 | 10 | 2 | 13 | Beijing | PM2.5 | 2012-10-2 13:00 | 164 | 礸/mg?1 Hr | Valid | NaN |
6614 | 2012 | 10 | 2 | 14 | Beijing | PM2.5 | 2012-10-2 14:00 | 169 | 礸/mg?1 Hr | Valid | NaN |
... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
7190 | 2012 | 10 | 26 | 14 | Beijing | PM2.5 | 2012-10-26 14:00 | 293 | 礸/mg?1 Hr | Valid | NaN |
7210 | 2012 | 10 | 27 | 10 | Beijing | PM2.5 | 2012-10-27 10:00 | 222 | 礸/mg?1 Hr | Valid | NaN |
7211 | 2012 | 10 | 27 | 11 | Beijing | PM2.5 | 2012-10-27 11:00 | 232 | 礸/mg?1 Hr | Valid | NaN |
7212 | 2012 | 10 | 27 | 12 | Beijing | PM2.5 | 2012-10-27 12:00 | 166 | 礸/mg?1 Hr | Valid | NaN |
7213 | 2012 | 10 | 27 | 13 | Beijing | PM2.5 | 2012-10-27 13:00 | 105 | 礸/mg?1 Hr | Valid | NaN |
49 rows × 11 columns