数据分析Task 1

这篇博客介绍了数据分析的基础操作,包括使用Python的Pandas库载入和观察数据,如读取CSV和TSV文件,检查数据结构和空值,以及保存数据。进一步探讨了Pandas的DataFrame和Series数据类型,以及数据筛选逻辑,通过实际任务展示了如何根据年龄筛选乘客信息。最后,简述了探索性数据分析中的排序、算术计算和描述性统计应用。
摘要由CSDN通过智能技术生成

学习数据分析,首先读取保存数据,知道基本的数据结构,对数据的含义及相关操作有个认识。

Chapter 1: 数据载入及初步观察

1.1 载入数据

1.1.1 任务一:导入numpy和pandas

额外导入os模块,方便之后运行os.getcwd()查询文件地址

1.1.2 任务二:载入数据

(1) 使用相对路径载入数据


(2) 使用绝对路径载入数据

知道数据加载的方法后,试试pd.read_csv()和pd.read_table()的不同,如果想让他们效果一样,需要怎么做?了解一下'.tsv'和'.csv'的不同,如何加载这两个数据集?

 1.1.3 任务三:每1000行为一个数据模块,逐块读取

           

1.1.4 任务四:将表头改成中文,索引改为乘客ID [对于某些英文资料,我们可以通过翻译来更直观的熟悉我们的数据

1.2 初步观察

导入数据后,你可能要对数据的整体结构和样例进行概览,比如说,数据大小、有多少列,各列都是什么格式的,是否包含null等

1.2.1 任务一:查看数据的基本信息

 1.2.2 任务二:观察表格前10行的数据和后15行的数据

 

 1.2.4 任务三:判断数据是否为空,为空的地方返回True,其余地方返回False

1.3 保存数据

 1.3.1 任务一:将你加载并做出改变的数据,在工作目录下保存为一个新文件train_chinese.csv

 Chapter 2: Pandas 基础

 1.4 知道你的数据叫什么

我们学习pandas的基础操作,那么上一节通过pandas加载之后的数据,其数据类型是什么呢?

1.4.1 任务一:pandas中有两个数据类型DateFrame和Series,通过查找简单了解他们。然后自己写一个关于这两个数据类型的小例子🌰[开放题]

pd.Series(np.random.randint(10,100,5))

pd.DataFrame(np.random.randint(10,100,5),
            columns=['a'])

1.4.2 任务二:根据上节课的方法载入"train.csv"文件

#写入代码
csv=pd.read_csv("train.csv")
csv.head(5)

1.4.3 任务三:查看DataFrame数据的每列的名称

#写入代码
#查看每一列的名称
csv.columns
#查看每一行的名称
csv.index

 1.4.4任务四:查看"Cabin"这列的所有值[有多种方法]

#写入代码
#方法一:字典模式
csv['Cabin']
#方法二:属性模式
csv.Cabin
#方法三:loc
csv.loc[:,'Cabin']
#方法四, 多列
csv.loc[:,'Sex':'Cabin']
csv.loc[:,['Sex','Cabin']]
csv[['Sex','Cabin']]

1.4.5 任务五:加载文件"test_1.csv",然后对比"train.csv",看看有哪些多出的列,然后将多出的列删除

经过我们的观察发现一个测试集test_1.csv有一列是多余的,我们需要将这个多余的列删去

#写入代码
test = pd.read_csv("test_1.csv")
del  test['a']
test

【思考】还有其他的删除多余的列的方式吗?
#方法一: 
test = test.drop(columns= 'a')

#方法二:
test=test.drop(['a'],axis=1)

1.4.6 任务六: 将['PassengerId','Name','Age','Ticket']这几个列元素隐藏,只观察其他几个列元素

test = test.drop(['PassengerId','Name','Age','Ticket'],axis=1)
test.head(3)

1.5 筛选的逻辑

表格数据中,最重要的一个功能就是要具有可筛选的能力,选出我所需要的信息,丢弃无用的信息。

下面我们还是用实战来学习pandas这个功能。

1.5.1 任务一: 我们以"Age"为筛选条件,显示年龄在10岁以下的乘客信息。

#写入代码
test[test['Age']<10].head(3)

1.5.2 任务二: 以"Age"为条件,将年龄在10岁以上和50岁以下的乘客信息显示出来,并将这个数据命名为midage

midage = test[(test['Age']>10) & (test['Age']<50)]
midage

1.5.3 任务三:将midage的数据中第100行的"Pclass"和"Sex"的数据显示出来

#写入代码
midage.reset_index(drop=True)
midage.loc[[100],["Pclass","Sex"]]

1.5.4 任务四:使用loc方法将midage的数据中第100,105,108行的"Pclass","Name"和"Sex"的数据显示出来

#写入代码
midage.loc[[100,105,108],["Pclass",'Name',"Sex"]]

1.5.5 任务五:使用iloc方法将midage的数据中第100,105,108行的"Pclass","Name"和"Sex"的数据显示出来

#写入代码
midage.iloc[[100,105,108],[3,4,5]]

Chapter 3: 探索性数据分析

我们要学习的就是探索性数据分析,主要介绍如何利用Pandas进行排序、算术计算以及计算描述函数describe()的使用。

1.6 了解你的数据吗?

1.6.1 任务一:利用Pandas对示例数据进行排序,要求升序

df = pd.DataFrame(np.arange(8).reshape((2, 4)),
                 index=[2,1],
                 columns=['d', 'a', 'b', 'c'])

#1.让行索引升序排序
df.sort_index()

#2.让列索引升序排序
df.sort_index(ascending=True,axis=1)

#3.让列索引降序排序
df.sort_index(ascending=False,axis=1)

#4.让任选两列数据同时降序排序
df.sort_values(by=['b','c'],ascending= False)

1.6.2 任务二:对泰坦尼克号数据(trian.csv)按票价和年龄两列进行综合排序(降序排列),从这个数据中你可以分析出什么

#在开始我们已经导入了train_chinese.csv数据,而且前面我们也学习了导入数据过程.
根据上面学习,我们直接对目标列进行排序即可

csv = pd.read_csv("train_chinese.csv")

csv.sort_values(by=['票价','年龄'],ascending=False).head(20)

1.6.3 任务三:利用Pandas进行算术计算,计算两个DataFrame数据相加结果

frame1_a = pd.DataFrame(np.arange(9.).reshape(3, 3),
                     columns=['a', 'b', 'c'],
                     index=['one', 'two', 'three'])
frame1_b = pd.DataFrame(np.arange(12.).reshape(4, 3),
                     columns=['a', 'e', 'c'],
                     index=['first', 'one', 'two', 'second'])

#将frame_a和frame_b进行相加
frame1_a+frame1_b

1.6.4 任务四:通过泰坦尼克号数据如何计算出在船上最大的家族有多少人?

max(csv["兄弟姐妹个数"]+csv["父母子女个数"])
#年龄的极差是否有关系
max(csv['年龄'])-min(csv['年龄'])

#最小的乘客是否能逃生
min(csv['年龄'])

#年龄低的乘客生存情况
csv.sort_values(by=['年龄'],ascending=True)

1.6.5 任务五:学会使用Pandas describe()函数查看数据基本统计信息

frame2 = pd.DataFrame([[1.4, np.nan], 
                       [7.1, -4.5],
                       [np.nan, np.nan], 
                       [0.75, -1.3]
                      ], index=['a', 'b', 'c', 'd'], columns=['one', 'two'])
frame2.describe()

1.6.6 任务六:分别看看泰坦尼克号数据集中 票价、父母子女 这列数据的基本统计数据,你能发现什么?

csv['票价'].describe()
csv['父母子女个数'].describe()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值