数据分析要做的事情是基于一定的问题背景,对数据进行分析,分析后的最终目的还是回归现实,指导我们接下来的行动,所以第一步是阅读问题背景和材料,下载数据集。本次数据集来自kaggle泰坦尼克号的数据,对幸存情况进行分析和建模,并预测测试集上的数据。(pandas的基本操作方法另行记录)
一、阅读材料,了解问题背景,下载数据集
二、使用python进行数据分析
1.导入numpy和pandas
2.导入数据集:df=pd.read_csv(‘路径(绝对或相对)’)
注:1)可以用os.getcwd()查看当前工作目录
2)导入时可以添加参数:names=【】对列名进行更改,index_col=’XXX‘来更改索引,方便阅读。
3)保存数据:df.to_csv('路径')
3.初步观察数据,所用指令包括df.info();df.head();df.tail(),观察的内容主要是数据有多少行,什么格式,有没有空值df.isnull()
对数据进行初步的统计分析,均值方差最值,四分分位数等:df.describe()
4.对数据进行筛选和排序:
1)以年龄筛选数据:children = df[df[“年龄”]<15],midage = df[(df[“年龄”]>30)&(df[“年龄”]<50)]
注:筛选完之后需要用reset_index()函数对截取的片段重新分配索引,不然使用的是大数据集的索引
2)使用loc和iloc方法截取数据片段:midage.loc[[100,105,108],['Pclass','Name','Sex']]、midage.iloc[[100,105,108],[2,3,4]]两者取出的是同一个片段。
注:易见loc方法的列索引需要打出列名,而iloc方法只需要列序号。
3)根据某条件对数据进行排序:df.sort_values(by=['票价', '年龄'], ascending=False)
注:排序特别容易看出数据之间的相关性,为我们的数据分析提供思路,比如票价越高,幸存比例越高(钱能救命诚不我欺),female的幸存率远高于male(救援的优先度),进一步可以猜测,壮年因为体力好是否幸存率更高,老年因为救援的优先度是否幸存率更高,家庭人数多的是否因为群体协作而有更高的幸存率等等,这些都可以通过截取和排序而得出直观的结果。