pandas文件读取

Pandas 是 Python 的一个功能强大且灵活的三方包,可处理标记和时间序列数据。还提供统计方法、启用绘图等功能。Pandas 的一项重要功能是能够编写和读取 Excel、CSV 和许多其他类型的文件并且能有效地进行处理文件。

当使用 Pandas 做数据分析的时,需要读取事先准备好的数据集,这是做数据分析的第一步。Panda 提供了多种读取数据的方法:

  • read_csv() 用于读取文本文件
  • read_excel() 读取 excel 文件
  • read_html() 读取 html 表格
  • read_json() 用于读取 json 文件
  • read_sql_query() 读取 sql 语句的

读取/写入csv文件

read_csv() 函数的功能是可以让文件或者文件中url地址以及文件新对象中加载带有分隔符的数据,它默认分隔符是逗号

import pandas as pd
df = pd.DataFrame({'one_name':[1,2,3],'two_name':[4,5,5]})
df.to_csv("test.txt")
file = open('test.txt')
file_data = pd.read_csv(file)
print(file_data)
'''
	Unnamed: 0	one_name	two_name
0	0	1	4
1	1	2	5
2	2	3	5
'''

读取/写入excel文件

read_excel() 的作用:将Excel文件读取到pandas DataFrame中。

支持从本地文件系统或URL读取的xls,xlsx,xlsm,xlsb和odf文件扩展名。 支持读取单一sheet或几个sheet。

df1 = pd.DataFrame({'col1':['数','据'],'col2':['分','析']})
df1.to_excel('./test.xlsx')
excel_path='test.xlsx'
data = pd.read_excel(excel_path)
print(data)
'''
	Unnamed: 0	col1	col2
0	0	数	分
1	1	据	析
'''

读取html转换为表格

read_html() 函数是最简单的爬虫,可以爬取静态网页表格数据。但只适合于爬取 table 表格型数据

import pandas as pd
import requests
html_data = requests.get("http://kaoshi.edu.sina.com.cn/college/majorlist")
html_table_data = pd.read_html(html_data.content,encoding='utf-8')
# 读取html转换为表格
# html_table_data = pd.read_html("http://kaoshi.edu.sina.com.cn/college/majorlist",encoding='utf-8') # 跟上面的方法是一样的
html_table_data[1]
'''
0	1	2	3	4
0	专业名称	专业代码	专业大类	专业小类	操作
1	哲学类	0101	哲学	哲学类	开设院校 加入对比
2	哲学	010101	哲学	哲学类	开设院校 加入对比
3	逻辑学	010102	哲学	哲学类	开设院校 加入对比
4	宗教学	010103	哲学	哲学类	开设院校 加入对比
5	伦理学	010104	哲学	哲学类	开设院校 加入对比
6	经济学类	0201	经济学	经济学类	开设院校 加入对比
7	经济学	020101	经济学	经济学类	开设院校 加入对比
8	经济统计学	020102	经济学	经济学类	开设院校 加入对比
9	国民经济管理	020103	经济学	经济学类	开设院校 加入对比
10	资源与环境经济学	020104	经济学	经济学类	开设院校 加入对比
11	商务经济学	020105	经济学	经济学类	开设院校 加入对比
12	能源经济	020106	经济学	经济学类	开设院校 加入对比
13	劳动经济学	020107	经济学	经济学类	开设院校 加入对比
14	经济工程	020108	经济学	经济学类	开设院校 加入对比
15	数字经济	020109	经济学	经济学类	开设院校 加入对比
16	财政学类	0202	经济学	财政学类	开设院校 加入对比
17	财政学	020201	经济学	财政学类	开设院校 加入对比
18	税收学	020202	经济学	财政学类	开设院校 加入对比
19	金融学类	0203	经济学	金融学类	开设院校 加入对比
20	金融学	020301	经济学	金融学类	开设院校 加入对比
'''

案例:北京高考分数线统计分析

具体要求:(http://gaokao.xdf.cn/201805/10784342.html)

  1. :一本文理科与二本文理科最高分数线是多少,最低的分数线是多少,相差多少?
  2. :2018年与2017年相比,一本文理科与二本文理科变化了多少分?
  3. :求2006-2018年近13年每科分数线的平均值?
import pandas as pd
data = pd.read_excel('scores.xlsx',header=[0,1],index_col=[0])
print(data)
'''
	一本分数线	二本分数线
文科	理科	文科	理科
2018	576	532	488	432
2017	555	537	468	439
2016	583	548	532	494
2015	579	548	527	495
2014	565	543	507	495
2013	549	550	494	505
2012	495	477	446	433
2011	524	484	481	435
2010	524	494	474	441
2009	532	501	489	459
2008	515	502	472	455
2007	528	531	489	478
2006	516	528	476	476
'''
一本分数线二本分数线
文科理科文科理科
2018576532488432
2017555537468439
2016583548532494
2015579548527495
2014565543507495
2013549550494505
2012495477446433
2011524484481435
2010524494474441
2009532501489459
2008515502472455
2007528531489478
2006516528476476
# 一本文理科与二本文理科最高分数线是多少,最低的分数线是多少,相差多少?
score_one1_max = data['一本分数线']['理科'].max()
print("一本理科最高分数线:",score_one1_max)  # 550
score_two1_max = data['二本分数线']['理科'].max()
print("二本理科最高分数线:",score_two1_max)  # 505
score_one1_min = data['一本分数线']['理科'].min()
print("一本理科最低分数线:",score_one1_min)  # 477
score_two1_min = data['二本分数线']['理科'].min()
print("二本理科最低分数线:",score_two1_min)  # 432
print("一本理科最高分数线与一本理科最低分数线相差:",score_one1_max-score_one1_min)  # 73
print("二本理科最高分数线与二本理科最低分数线相差:",score_two1_max-score_two1_min)  # 73
score_one2_max = data['一本分数线']['文科'].max()
print("一本文科最高分数线:",score_one2_max)  # 550
score_two2_max = data['二本分数线']['文科'].max()
print("二本文科最高分数线:",score_two2_max)  # 505
score_one2_min = data['一本分数线']['文科'].min()
print("一本文科最低分数线:",score_one2_min)  # 477
score_two2_min = data['二本分数线']['文科'].min()
print("二本文科最低分数线:",score_two2_min)  # 432
print("一本文科最高分数线与一本文科最低分数线相差:",score_one2_max-score_one2_min)  # 73
print("二本文科最高分数线与二本文科最低分数线相差:",score_two2_max-score_two2_min)  # 73

'''
一本理科最高分数线: 550
二本理科最高分数线: 505
一本理科最低分数线: 477
二本理科最低分数线: 432
一本理科最高分数线与一本理科最低分数线相差: 73
二本理科最高分数线与二本理科最低分数线相差: 73
一本文科最高分数线: 583
二本文科最高分数线: 532
一本文科最低分数线: 495
二本文科最低分数线: 446
一本文科最高分数线与一本文科最低分数线相差: 88
二本文科最高分数线与二本文科最低分数线相差: 86
'''

一本文理科与二本文理科最高分数线是多少,最低的分数线是多少,相差多少?

# 一本文理科与二本文理科最高分数线是多少,最低的分数线是多少,相差多少?
print(data.max())
print(data.min())
print(data.max()-data.min())
'''
一本分数线  文科    583
       理科    550
二本分数线  文科    532
       理科    505
dtype: int64
一本分数线  文科    495
       理科    477
二本分数线  文科    446
       理科    432
dtype: int64
一本分数线  文科    88
       理科    73
二本分数线  文科    86
       理科    73
dtype: int64
'''

2018年与2017年相比,一本文理科与二本文理科变化了多少分?

# 2018年与2017年相比,一本文理科与二本文理科变化了多少分?
data_2018 = data.iloc[0]
data_2017 = data.iloc[1]
print(abs(data_2018-data_2017))
'''
一本分数线  文科    21
       理科     5
二本分数线  文科    20
       理科     7
dtype: int64
'''

求2006-2018年近13年每科分数线的平均值?

# 求2006-2018年近13年每科分数线的平均值?
data.mean()
'''
一本分数线  文科    541.615385
       理科    521.153846
二本分数线  文科    487.923077
       理科    464.384615
dtype: float64
'''
  • 2
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
pandas是一个流行的Python数据分析库,可以用来处理和分析数据。使用pandas读取本地的CSV文件非常简单。 首先,我们需要安装pandas库,可以使用以下命令在终端或命令提示符中进行安装: pip install pandas 安装完成后,我们可以在Python脚本中导入pandas库: import pandas as pd 接下来,我们可以使用pandas的read_csv函数来读取本地的CSV文件。read_csv函数的语法如下: pd.read_csv(filepath_or_buffer, sep=',', delimiter=None, header='infer', names=None) - filepath_or_buffer:CSV文件的路径或URL。 - sep:字段分隔符,默认为逗号。 - delimiter:字段分隔符的备选参数,默认为None。 - header:指定行数用作列名,默认为'infer',即自动判断列名所在的行。 - names:设置列名。 例如,我们有一个名为data.csv的CSV文件,并且该文件位于与Python脚本相同的目录中。以下是读取文件的代码示例: data = pd.read_csv('data.csv') 如果该文件的路径与脚本不在同一个目录中,我们可以使用绝对路径来指定文件的位置,例如: data = pd.read_csv('/path/to/data.csv') 读取完成后,我们可以通过运行print(data)来查看读取到的数据。此外,我们还可以使用pandas提供的各种函数和方法对数据进行进一步的处理和分析,如数据清洗、数据筛选、数据排序等。 总之,pandas库提供了一种简单而强大的方式来读取本地的CSV文件,并进行数据处理和分析。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

码上行舟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值