第一章第一节:数据载入及数据观察
基础知识:
1.导入库:
import pandas/numpy/os...
2.导入数据文件:
pd.read_csv("路径名")
3.大文件分块导入:
利用chunksize参数
4.观察数据:
df.info()
df.describe()
5.空数据返回
df.isnull()
任务:
1.导入库:
import numpy as np
import pandas as pd
2.导入文件
df = pd.read_csv('D:/hands-on-data-analysis/第一单元项目集合/train.csv', encoding='cp936')
df.head(3)
注:(1).encoding是通过下列命令得到的(解决编码错误的问题)
with open('D:/hands-on-data-analysis/第一单元项目集合/train.csv') as f:
print(f)
(2).head函数用法:head(n)表示展示前n行,默认为5.
3.逐块读取:
有时候文件较大, 为了方便读取文件提高效率,常常分块读取文件。
利用chunksize参数:
chunker = pd.read_csv('D:/hands-on-data-analysis/第一单元项目集合/train.csv', chunksize = 1000)
如上所示为1000行1000行的读
4.修改索引:
df = pd.read_csv('D:/hands-on-data-analysis/第一单元项目集合/train.csv', names = ['乘客ID','是否幸存','仓位等级','姓名','性别','年龄','兄弟姐妹个数','父母子女个数','船票信息','票价','客舱','登船港口'], header = 0)
这种方法是在导入文件时同时修改, 另一种方法是先导入, 再修改,此处不赘述。
5.观察数据:
df.info()
df.describe()
观察前n行:
df.head(6)
观察后n行
df.tail()
数据空的地方返回True,其余地方返回False
df.isnull()
6.将修改后的文件保存:
df.to_csv('D:/hands-on-data-analysis/第一单元项目集合/train_chinese1.csv')
第一章第二节 :pandas基础
基础知识:
1.series和dataframe的区别:
series相当于数组,而dataframe相当于表格。
2.查看DataFrame数据的每列的名称:
df.columns()
3.查看列名为xxx的所有行:
df['xxx']
4.删除指定行:
del df['xxx']或者df.drop('xxx', axis = 1)
5.筛选有用信息:
df[不啦不啦]
1.设置series:
score = {'lifei':90, 'wangming':98, 'lihui':67, 'liuwei':78}
e_1 = pd.Series(score)
e_1
2.设置dataframe:
information = {'student':['lifei', 'lifei', 'lifei','wangm', 'wangm'],
'year':[2018, 2019, 2010, 2019, 2020],
'weight':[120, 110, 115, 198, 200]}
e_2 = pd.DataFrame(information)
e_2
series和dataframe的区别:
series相当于数组,而dataframe相当于表格。
3.查看DataFrame数据的每列的名称
df.columns
4.查看列名为Cabin的所有行:
df['Cabin']
df.Cabin
5.删除指定列:
df_test = pd.read_csv('D:/hands-on-data-analysis/第一单元项目集合/test_1.csv', encoding='cp936')
del df_test['a']
df_test.head(3)
或者使用drop函数:
df_test.drop('a', axis = 1)
df.head(3)
结果显示一致:
同样地, 因为删除某一列不会影响原数据, 所以可以利用删除某几列来研究剩余几列地特点, 即比如当我们需要研究除['PassengerId','Name','Age','Ticket']这几个列以外的其他几个列元素时, 可以把这几列删除:
df.drop(['PassengerId','Name','Age','Ticket'],axis=1).head(3)
6. 筛选有用信息,丢弃无用信息
例如筛选出年龄小于10的数据:
df[df['Age']<10]
midage = df[(df['Age']>10)&(df['Age']<50)]
midage.head(3)
loc用法例:
midage.loc[[100,105,108],['Pclass','Name','Sex']]
iloc用法例:
midage.iloc[[100,105,108],[2,3,4]]
loc和iloc用法区别很明显:loc是通过名称引用, iloc是通过列数引用。
第一章第三节:探索性数据分析
基础知识:
对某一列进行升序或降序排列:
data.sort_values(by = '', ascending = True/False)
根据行索引进行升序或降序排列:
data.sort_index(ascending = True/False)
根据列索引进行升序或降序排列:
data.sort_index(axis = 1, ascending = True/False)
泰坦尼克号数据集实战:
已尝试完,很有趣,略。