#Python# 【pandas处理数据·入门】【最基本操作】+【读xls多文件-筛掉异常数据-写xls文件】

为什么使用python处理数据?

Excel、spss都已经很强大了,为什么还要用python?
– 这是因为python可以较为快速自定义处理量级更大的数据,而且免费

【必读的说明】

  • 环境python3

  • 以下涉及的代码都是可以在代码编辑器中(我用的是Wing)中运行的,与在Jupyter中代码有区别的!

PART1 最简单的数据处理

代码作用:在代码中直接敲入数据,并呈现
代码示例

#在代码中直接敲入数据,并呈现
import pandas as pd
import numpy as np

raw_columns=['student_id','gender','name','score']#列索引
raw_data=[['001','male','jane','100'],['002','female','harry','90']]#数据
df=pd.DataFrame(data=raw_data,columns=raw_columns)
print(df)#如果是在Jupyter则不用print,直接输入df

呈现结果
python处理数据1

PART2 xls读写(读入两个文件,最后输出一个)

首先导入所需要的包

代码示例

import pandas as pd
import numpy as np

step1:读入两个要处理的文件

代码示例

stu_info=pd.read_excel('./dataforpactice/dataforpactice/stu_info.xlsx')#相对路径(相对的是代码文件)
stu_result=pd.read_excel('./dataforpactice/dataforpactice/stu_results.xlsx')#相对路径
#注意运行到这pandas调用xlrd模块,可能会报错,需要命令行cmd中pip install xlrd 一下
#print(stu_info.head())#查看前5行
#print(stu_result.head())#查看前5行
#print(stu_info)#查看所有(虽然在wing里显示头和尾,中间用省略号)好奇效果的同学可以取消这里的注释,试一下效果

呈现结果:其中第二个的print的效果图(随便选了一个print)
python处理数据效果图2

step2:合并两个文件,生成数据集

代码示例

#df_stu=pd.merge(stu_info,stu_result,how='left',on=('stu_id','stu_id'))#数据放在不同文件,可以进行合并;类似于数据库join
df_stu=pd.merge(stu_info,stu_result,how='left',right_on='stu_id',left_on='stu_id')#连接键命名不同,要用right_on和left_on 

step3:处理异常数据(就是去掉不想要的!!!)

3-1判断是否有缺失值/描述性统计(可选操作)

代码示例

print(df_stu.describe()) #描述统计,看对应列的正常数据数(可以先看一下是否有缺失的)

呈现结果
数据总数为599,可以看出在final_result一列的数据缺失
python数据处理效果3

3-2 查看有缺失值的数据行(可选操作)

代码示例

#print(df_stu['final_result'].isna()==True) #False正常数据,True为缺失数据;这一行输出每一行数据的判断结果
print(df_stu[df_stu['final_result'].isna()==True]) #打印出异常数据行

呈现结果
可以对应看到15行和116行的final_resul 值缺失
python处理数据效果图4
###3-3去掉有缺失值的数据行
这一步操作也可以称作保留正常的数据行
代码示例

df_stu=df_stu[df_stu['final_result'].isna()==False]#删除异常值,保留正常值
print(df_stu.describe()) #可以再看一下改变

处理后结果
可以对应看到有缺失值的两行数据全被去掉->全为597了
python处理数据效果图5

3-3 保留部分值(可选操作,与上一步基本一致)

数据中有一行叫做state,state的值共有两种情况,一种是withdraw(辍学),另一种是pass(通过)
这里我只想保留“通过”状态的数据
代码示例

print(df_stu['state'].value_counts())#state 是数据里的一个列名,一共有两种值withdraw和path
#上一行代码可以查看最开始两种值各自的数量
df_stu=df_stu[df_stu['state']=='pass']#保留“通过”(即pass状态)的值
print(df_stu['state'].value_counts())#查看处理之后的结果

效果呈现:1-2:处理前-处理后
python处理数据结果6

step4:输出/写入xls文件(处理后的数据)

代码示例

df_stu.to_excel("./test1.xls",encoding="utf-8")
#这里一定一定要注意文件格式,写成xlsx是不对的!
#PS:如果想输出csv格式的文件,to_excel对应换成to_csv,并且第一个参数中的xls要对应改成csv

效果呈现
在代码文件的目录下生成xls文件 python处理数据效果图7

小结&附件

这篇博客的重点在于xls文件的读写以及简单的数据处理(缺失值),博客的逻辑是以1个实例的操作为主线。因此相关函数对应的参数、功能使用并不全面,大家可以以此为基础向外拓展。
用到的两个xls文件见资源链接

发布了5 篇原创文章 · 获赞 3 · 访问量 669

猜你喜欢

转载自blog.csdn.net/weixin_43689393/article/details/103418917