#课程作业2# 个人学习笔记
直播链接:【Pandas入门-哔哩哔哩】 https://b23.tv/8QxAQMX
笔记用到的资料:https://pan.quark.cn/s/bc1db642d867
Pandas简单了解
Pandas是Python中用于数据处理和数据分析的库,支持大量数据操作和数据分析功能,包括数据清洗、转换、筛选、聚合、透视表、时间序列分析等。
DataFrame是Pandas中最重要的数据结构之一,它类似于Excel中的电子表格,由多个列组成,每个列可以是不同的数据类型。DataFrame可以从多种数据源中读取数据,包括CSV、Excel、SQL数据库等。
准备工作
打开jupyter notebook,把资料里的TASK导入,然后打开。进入如下页面
notebook使用操作参考:Python入门(含python基础语法+Miniconda搭建+Jupyter Notebook简单使用)-CSDN博客
正式学习
一.TASK01-数据载入及初步观察
1.导入pandas库和numpy库
!pip install numpy
!pip install pandas
#安装numpy库和pandas库的操作
import numpy as np
import pandas as pd
#用import导入两个库
2.打开表格 路径可以为相对路径或绝对路径
用pandas库中的read_csv()函数
df = pd.read_csv('train.csv') #用相对路径读取表格并保存在df变量中 df = pd.read_csv(r'D:\downloads\pandas\train.csv') #用绝对路径读取表格并保存在df变量中
3.表格的分块读取
分每1000行为一个数据块,分块读取。chunker = pd.read_csv('train.csv',chunksize=1000) #chunker是TextFileReader对象,是特殊的迭代器。允许以块的形式读取数据。 for chunk in chunker: print(chunk) #每一个chunk都是一个新的数据块
4.表头由英文改成中文
df.columns = ['乘客ID','是否幸存','乘客等级(1/2/3等舱位)','乘客姓名','性别','年龄','兄弟姐妹个数','父母子女个数','船票信息','票价','客舱','登陆港口']
或者在读取时,把表头英文改为各自的中文,定义给新的变量df_chinese = pd.read_csv('train.csv',names=['乘客ID','是否幸存','乘客等级(1/2/3等舱位)','乘客姓名','性别','年龄','兄弟姐妹个数','父母子女个数','船票信息','票价','客舱','登陆港口'],header=0) #header=0,指定原来的表头不显示
5.查看数据的基本信息
df = pd.read_csv('train.csv') df.info()
6.观察表格前10行数据和后15行数据
df.head(10) df.tail(15)
7.判断数据是否为空,为空的地方返回true,其余地方返回false
df.isnull().head(5)
8.保存数据
df.to_csv('train_chinese.csv')
把df_chinese保存在该目录下。
二.TASK02-pandas基础
1.引入环境
import numpy as np import pandas a pd
2.引入train.csv的文件
df = pd.read_csv('train.csv') #这里df是变量
3.查看dataframe数据的每列的名称
df.columns #看到每一列的名称
4.查看Cabin这列的所有值
df['Cabin'] df['Cabin'].head(3) 或者 : df.Cabin df.Cabin.head(3)
5.将多出的列删除
test1 = pd.read_csv('test_1.csv') #a是多出来的那列 del test1['a'] test1.head(3)
6.将列的元素隐藏,只观察其它几个列元素
df.drop(['Name','Age'],axis=1) #注意del和drop的区别
7.以age为筛选条件,显示年龄10岁以下的乘客信息
df[df['Age'] < 10] df[df['Age'] < 10].head(3)
8.将10到50岁之间的显示出来,并将数据命名为midage
midage = df[(df['Age']) > 10 & (df['Age'] < 50)] midage.head(3)
9.将midage的数据中第100行的pclass和sex的数据显示出来
midage.reset_index() #注意一定要重置索引。 midage.loc[[100],['Pclass','Sex']]reset_index()函数详见:(Python)Pandas reset_index()用法总结_pandas reset index-CSDN博客
10.使用loc方法将midage的数据中第100,105,108行的pclass,name的数据显示出来
midage.loc[[100,105,108],['pclass','name']]
11.使用iloc方法将midage的数据中第100,105,108行中的pclass,name的数据显示出来
midage.iloc[[100,105,108],[2,3]] #iloc和loc的区别:iloc用的是索引,只能是整型数字,loc可以是列名。
TASK03-探索性数据分析
1.对示例数据进行排序,要求升序
frame = pd.DataFrame(np.arange(8).reshape((2,4)),index=['2','1'],columns=['d','a','b','c']) frame.sort_values(by=['d'],ascending=True) #由于题目要求对示例数据排序,所以用sort_values()函数。如果是对行索引或列索引排序,那用sort_index()函数 # 列名为d的那列数据升序排列。ascending参数默认是True,即升序
2. 对行索引或列索引进行升序或者降序排列
frame.sort_index()
#对行索引升序
frame.sort_index(axis=1)
#对列索引升序
frame.sort_index(ascending=False)
#对行索引降序
frame.sort_index(axis=1,ascending=False)
#对列索引降序
3. 使用describe()函数查看数据统计信息
调用describe()函数可以看到以下信息:
count : 样本数据大小
mean : 样本数据的平均值
std : 样本数据的标准差
min : 样本数据的最小值
25% : 样本数据25%的时候的值
50% : 样本数据50%的时候的值
75% : 样本数据75%的时候的值
max : 样本数据的最大值
frame.describe()得到每个列的基本信息。
frame['列名'].describe()得到指定列的基本信息。
作业
补充:Pandas作业内容及详解: