python进行Excel处理

python进行Excel处理,第1张

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="第一阶段三套题汇总")

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/568683.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-09
下一篇 2022-04-09

发表评论

登录后才能评论

评论列表(0条)

保存