Python数据分析-利用pandas分析excel文件(实训)

17 篇文章 17 订阅

第1关:数据分析基础

任务描述

本关任务:从文件中读取数据,完成相关数据分析基本操作。

相关知识

为了完成本关任务,你需要掌握:1.文件读写,2.数据索引,3.添加新列。

文件读写

1.读取文件 利用pandas读取文件主要用到的函数是read_xx(),读取后数据结构为dataframe。

1.1 excel文件 pd.read_excel()可以用来读取excel文件,主要涉及到的参数有: (1)sheet_name: excel文件中的表名 (2)index_col: 使用哪一列作为行索引,默认从0开始 (4)usecols: 读取表格中哪几列,必须是位置索引 (5)header: 哪一行设置为列索引,默认是第一行,即header = 0 (6)date_parser:解析日期的函数 (7)parse_dates:尝试将数据解析为日期,默认为False。如果为True,则尝试解析所有列。此外,还可以指定需要解析的一组列号或者列名 (8)names: 列索引 (9)engine: 默认是C,如文件路径存在中文时,engine= "python" (10)encoding: 默认是utf-8,还可以是gbk (11)skiprows: 跳过前几行读取文件,默认从0开始 (12)nrows: 读取多少行数据 (13) converters: 列名跟函数之间的映射关系组成的字典

以数据文件example.xls的读取为例:

,

 
  1. import pandas as pd
  2. df = pd.read_excel('example.xls',nrows = 5)
  3. print(df)
  4. 用户id 性别 年龄 消费金额 贷款与否
  5. 0 1 男 60 311.0 0
  6. 1 2 NaN 25 220.0 1
  7. 2 3 男 47 246.0 0
  8. 3 4 女 52 NaN 0
  9. 4 5 女 21 916.0 0

默认将第一行作为表头读出。如果数据表格无表头,设置参数header=None:

 
  1. df = pd.read_excel('example.xls',header=None,nrows = 5)

1.2 csv文件 csv文件是以逗号为分隔符的文件,读取参数与excel基本类似。但是读取csv文件通常需要指定解码方式,最常用的是utf-8,如果使用utf-8报错,尝试设为gbk:

 
  1. df = pd.read_csv('example.csv',encoding = 'gbk')
  2. print(df)
  3. 用户id 性别 年龄 消费金额 贷款与否
  4. 0 1 男 60 311.0 0
  5. 1 2 NaN 25 220.0 1
  6. 2 3 男 47 246.0 0
  7. 3 4 女 52 NaN 0
  8. 4 5 女 21 916.0 0

1.3 txt文件 txt文件是以指制表符\t为分隔符的文件,可用read_csv来读取,参数与excel、csv基本类似,不同的地方在于必须要指定sep。

 
  1. df = pd.read_table('example.txt',encoding = 'gbk',sep = ',',nrows= 5)
  2. print(df)
  3. 用户id 性别 年龄 消费金额 贷款与否
  4. 0 1 男 60 311.0 0
  5. 1 2 NaN 25 220.0 1
  6. 2 3 男 47 246.0 0
  7. 3 4 女 52 NaN 0
  8. 4 5 女 21 916.0 0
  1. 写入文件

2.1写入文件 excel,csv,txt写入文件的方式基本类似,以pandas的to_xx()方式写入;因为三者类似,这里只用excel格式来示例。 (1)index: 是否保留行索引 (2)columns: 通过列索引指定所需列 (3)sheet_name: 表名 (4)encoding:编码格式,utf-8或者gbk (5)na_rep: 缺失值填充 (6)inf_rep:无穷值填充 (7)index_label: 行索引标签 (8)header: 默认为True,False没有列索引,如需更改列名,则header = ["列1","列2","列3"]

 
  1. df = pd.read_excel('example.xls',nrows = 5)
  2. df.to_excel('example_new.xlsx',index = False,encoding = "utf-8")

写入csv文件和文本文件时用to_csv()。可以通过设置sep参数来指定间隔符,默认为','。

数据索引

1.按列索引

 
  1. df['性别'] or df.性别 #访问某一列数据
  2. df[['性别','消费金额']] #访问不连续的多列数据
  3. df['性别':'消费金额'] #访问连续的多列数据

2.按行索引

 
  1. df.iloc[0:3]

3.按行、列索引

 
  1. df.loc['性别':'消费金额',1:3]
  2. df.iloc[[1,3],[1,3]]

4.布尔索引

 
  1. df[df['消费金额']>=300] #消费金额>300的行

添加新列

 
  1. df['职业']='教师' #增加职业列,将所有人的职业设为教师
  2. df[df['性别']=='男']['职业']='医生' #将男性的职业改为医生

编程要求

根据提示,在右侧编辑器补充代码,完成指定操作。

 

# -*- coding: utf-8 -*-
"""
Created on Tue Feb  9 20:49:01 2021

@author: Administrator
"""

import pandas as pd

# 1.将scores.xls文件读到名为df的dataframe中
############begin############
df=pd.read_excel('scores.xls')
#############end#############




#2.添加平均分列:考勤、实验操作、实验报告的平均
############begin############

col_name=df.columns.tolist()
col_name.append('平均分')
df=df.reindex(columns=col_name)              # 对原行/列索引重新构建索引值

for j in range(0,(len(df))):
   a,b,c=df.iloc[j,6],df.iloc[j,7],df.iloc[j,8]
   s=a+b+c
   df.iloc[j,9]=s/3

#############end#############

#3.输出前3行学生的平均分列表,控制小数点后两位
############begin############
li=[]
for k in range(3):
   e=round(df.iloc[k,9],2)
   li.append(e)
print(li)
#############end#############

#4.输出学生人数和班级数
############begin############
print(len(df))
d={}
list_class=df['班级名称']
for i in list_class:
   if i in d:
      pass
   else:
      d[i]=1
print(len(d))
#############end#############

#5.分别输出实验报告中值、最高分、最低分
############begin############
sco_LR=[]
for m in range(len(df)):
   g=(df.iloc[m,8])
   g=float(g)
   sco_LR.append(g)
sco_LR.sort()
mid=(len(df)/2)

if mid%2==0:
   mid=int(mid)
   print((sco_LR[mid]+sco_LR[mid+1])/2)
else:
   print(sco_LR[int(mid+0.5)])

print('%.1f'%(sco_LR[-1]))
print('%.1f'%(sco_LR[0]))
#############end#############

#6.输出实验报告分最低的3位同学的姓名列表
############begin############
h=0
while True:
   index=-1
   tmp_name=''
   p=0x55AA
   for n in range(len(df)):
      o=float(df.iloc[n,8])
      
      if o<p:
         tmp_name=df.iloc[n,1]
         p=o
         index=n
      else:
         pass
   if h==0:
      print('[\'',end='')
   print(tmp_name,end='')
   if h!=2:
      h+=1
      print('\' \'',end='')
   else:
      print('\']')
      break
   df.iloc[index,8]=0x5BFE
#############end#############

  • 6
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
### 回答1: Python是一种功能强大的编程语言,可以用于各种数据分析任务。而在Python数据分析工具库中,pandas是最受欢迎和广泛使用的工具之一。 Pandas提供了用于处理和分析数据的高级数据结构和函数。其最常用的数据结构是DataFrame,类似于Excel中的表格。通过Pandas,我们可以读取Excel文件,并将其转换为DataFrame对象进行进一步处理。 使用Pandas进行Excel数据分析的第一步是读取Excel文件Pandas提供了read_excel函数,可以方便地读取Excel文件并转换为DataFrame对象。我们可以指定要读取的工作表、要保留的列、要跳过的行等。 一旦我们将Excel文件读取DataFrame对象,我们可以使用Pandas提供的丰富函数和操作对数据进行各种处理和分析。例如,我们可以使用head()函数查看前几行数据,使用describe()函数获取数据的统计摘要,使用mean()函数计算平均值,使用groupby()函数对数据进行分组等等。 除了数据处理和分析Pandas还提供了各种工具来处理缺失值和数据清洗。我们可以使用dropna()函数删除含有缺失值的行或列,使用fillna()函数将缺失值填充为指定的值,使用replace()函数替换数据中的特定值等。 在数据分析完成后,我们可以使用to_excel函数将DataFrame对象保存为Excel文件。在保存时,我们可以指定要保存的工作表、保存的位置和文件名等。 总之,Pandas是一个非常强大和灵活的库,可以使Python在处理Excel数据时变得更加简单和高效。无论是数据读取、处理、分析还是保存,Pandas都提供了丰富而简洁的函数和操作,使得数据分析变得更加容易。 ### 回答2: Pandas是一个功能强大的数据分析工具,可以轻松地处理和分析各种数据。同时,Pandas还提供了许多用于读取、处理和写入Excel文件的功能,让我们能够更方便地从Excel文件中提取和处理数据。 在使用Pandas进行Excel数据分析时,我们首先需要使用`pandas.read_excel()`函数读取Excel文件,并将其存储为一个PandasDataFrame对象。这样可以轻松地使用Pandas的各种数据处理和分析功能。 Pandas提供了一系列的函数来处理Excel数据,比如对数据进行过滤、排序、计算统计量等。我们可以使用`head()`函数快速查看数据的前几行,使用`describe()`函数生成数据的统计概要信息,使用`sort_values()`函数对数据进行排序等。 除此之外,Pandas还提供了一些方便的函数来进行Excel数据写入。我们可以使用`to_excel()`函数将DataFrame对象写入Excel文件,并通过参数来设置写入的Sheet名称、行列标签等。 除了基本的读写操作,Pandas还提供了丰富的数据转换和清洗功能,如数据合并、去重、填充空值等等。这些功能可以帮助我们更好地理解和分析Excel中的数据。 总而言之,Pandas是一个非常方便和强大的数据分析工具,可以让我们轻松地处理和分析Excel数据。通过Pandas,我们可以更加快速和高效地提取、清洗和分析数据,将Excel文件作为数据分析的重要来源之一。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值