1 import pandas
import pandas as pd
#导入pandas并取别名,后续代码都可以使用pd别名代替pandas
2 pandas读取Excel文件
sheet1_date = pd.read_excel("file_name","sheet_name")
#pandas可以读取多种文件类型,第一个参数是文件路径,可以是相对路径也可以是绝对路径,由打开jupyter notebook的文件夹位置决定
#第二个参数是Excel文件的sheetname
3 pandas数据类型DataFrame
利用type(sheet1_date)可以看到sheet1——date的数据格式为dataFrame
type(sheet1_date)
pandas.core.frame.DataFrame
3.1 如何声明一个dataframe
df1 = pd.DataFrame({
"a":[1,2,3],
"b":[4,5,6]
},index=[1,2,3])
3.2 dataFrame常见的函数、属性、方法
3.2.1 head()
默认读取前5行数据,可以在括号中赋值指定行数
sheet1_date.head(9)
3.2.1 tail()
默认读取文件尾部5行数据,可以在括号中赋值指定行数
sheet1_date.tail(3)
3.3 查看dataFrame的index
sheet1_data.index
3.4 查看dataFrame的形状即行列
sheet1_data.shape
#输出:(50, 7)
3.5 查看dataFrame的数据详情
sheet1_data.info()
#输出:
RangeIndex: 50 entries, 0 to 49
Data columns (total 7 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 专业 50 non-null object
1 题型 50 non-null object
2 难度 50 non-null int64
3 对应知识点 50 non-null object
4 题干 50 non-null object
5 选项(如果有) 34 non-null object
6 答案 50 non-null object
dtypes: int64(1), object(6)
memory usage: 2.9+ KB
3.6 查看dataFrame的value值
sheet1_date.values
#输出:
返回array
array([['数据分析', '单选', 1, '数据分析概念', '关于电商网站数据抓取的方式不包括',
'A.第三方工具抓取\nB.爬虫程序抓取\nC.数据库提取\nD.人工抓取', 'C'],
['数据分析', '判断题', 1, '数据分析概念', '以下软件/语言是否都属于数据分析软件/语言',
'A.SPSS\nB.Python\nC.Excel\nD.R', '是'],
4 dataFrame的访问 *** 作
4.1 访问某列数据
#访问某一列数据
sheet1_data["rows_name"]
#访问指定几列数据
sheet1_data[["rows1_name","rows2_name","rows3_name","rows4_name"]]
4.2 查看dataFrame的列名
sheet1_data.columns
#输出
#Index(['专业', '题型', '难度', '对应知识点', '题干', '选项(如果有)', '答案'], dtype='object')
4.3 指定显示dataFrame行
sheet1_data[[True,False,True]]
#输出:
a b
100 1 4
103 3 6
4.4 dataFrame条件筛选
4.4.1 筛选出sheet1_dataFrame中难度为2的数据
#先比较难度==2的值
sheet1_data["难度"] == 2
输出:
0 False
1 False
2 False
3 True
4 True
5 False
6 False
7 True
8 False
...
#再显示sheet1_data
sheet1_data[sheet1_data["难度"] == 2]
4.4.2 多条件判断
pandas多条件判断 & | 表示and或者是or
筛选难度为2或者3的数据
sheet1_data[(sheet1_data["难度"] == 2) | (sheet1_data["难度"] == 3)]
#注意:两个条件之间需要括号,否则运行失败
4.5 loc访问数据
#loc访问数据--相当于切片访问
#行访问
sheet1_date.loc[[1,2,3]]
#loc访问数据,行和列同时筛选
sheet1_date.loc[[1,2,3],"题型"]
#问:访问行结束后,想处理多列数据如何筛选
sheet1_date.loc[[1,2,3],["题型","难度"]]
#访问某一列之后的所有列
sheet1_date.loc[45:,"题型":]
#行筛选后,访问哪列到哪列
sheet1_date.loc[[1,2,3],"题型":"题干"]
4.5.1 loc总结
- 总结,loc可以提供给我们一个自由访问DataFrame的功能
- 支持两个参数,但参数必须首先要使用一个中括号包裹, sheet1_date.loc[ ]
- 第一个参数表示行,第二个参数表示列
- 当第一个参数使用[ ]包裹,也就是列表的时候,表示你明确的查询哪行数据
- 当第一个参数不用[ ]包裹,使用:表示从哪里开始一直到最后或到具体哪一行
- 第二个参数表示列的筛选,具体方式与行相同
4.6 iloc访问数据
loc和iloc的区别,loc是使用字段的名字进行访问,iloc使用的是索引数字
sheet1_date.iloc[1:3,2:4]
4.7 其他方式访问行和列
sheet1_date["题干"][3]
sheet1_date.at[1,"题干"]
sheet1_date[["题干","选项(如果有)"]][3:6]
#iloc访问指定行和列
sheet1_date.iloc[0,4]
输出:
'关于电商网站数据抓取的方式不包括'
sheet1_date.iat[1,4]
4.8 数据合并
使用concat,将多个sheet页中的或多个Excel表格中的数据合并到一起
pd.concat([sheet1_date,sheet2_data,sheet3_date]).head(1)
4.9 把处理后的数据重新写入一个新的Excel文件中
final_data = pd.concat([sheet1_date,sheet2_data,sheet3_date])
final_data.to_excel("final_data.xlsx",sheet_name="第一阶段三套题汇总")
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)