Datawhale第一次打卡
最近参加了一个“动手学数据分析”的学习打卡活动,自己本身对python只有一点点的了解,无数次想啃《利用Python进行数据分析》,但最后都不了了之了,这次活动好在:1.有一条比较完善的学习路径(这一点是比较好的,毕竟刚学习的时候有人告诉了你哪些比较重要,这样相对来说可以降低学习的成本);2.会有专人解答疑惑;3.会有伙伴相互打气,所以趁这次学习活动好好地学python数据分析,冲!!!
数据集下载:泰坦尼克号-机械从灾难中学习.
第一章
第一部分 载入 / 调整 / 查看 / 保存数据
1.1.1 载入数据
- df.read_csv( )
- df.read_table( )
这两种方式打开.csv文件的区别,在于pd.read_table需要在"sep=“参数中补充.csv分隔为”,"
data2=pd.read_csv("第一章/1.数据载入及初步观察/train.csv")
data3=pd.read_table("第一章/1.数据载入及初步观察/train.csv",sep=",")
以上是采用相对路径的方法进行读取的
这里会有一个相对路径和绝对路径的使用,这里提供两个方法分别来查看和修改相对路径
import os
os.getcwd():查看当前路径
os.chdir(path):修改当前路径
1.1.2 调整数据
- df.rename 修改列名
具体使用:
将表头改成中文,索引改为乘客ID [对于某些英文资料,我们可以通过翻译来更直观的熟悉我们的数据]
PassengerId => 乘客ID
Survived => 是否幸存
Pclass => 乘客等级(1/2/3等舱位)
Name => 乘客姓名
Sex => 性别
Age => 年龄
SibSp => 堂兄弟/妹个数
Parch => 父母与小孩个数
Ticket => 船票信息
Fare => 票价
Cabin => 客舱
Embarked => 登船港口
data1.rename(columns={"PassengerId":"乘客ID",
"Survived":"是否幸存",
"Pclass":"乘客等级(1/2/3等舱位)",
"Name":"乘客姓名",
"Sex":"性别",
"Age":"年龄",
"SibSp":"堂兄弟/妹个数",
"Parch":"父母与小孩个数",
"Ticket":"船票信息",
"Fare":"票价",
"Cabin":"客舱",
"Embarked":"登船港口"},inplace=True)
删除dataframe中某列
- del df[column_name]
- df.drop(column_name,inplace=True , axis=1)
drop() 删除行和列,但当inplace=Fales的时候,可以当作隐藏的功能使用
1.1.3 查看数据
查看
关于查看DataFrame数据总体情况的
- df.describe():查看DataFrame数据的数值类型的汇总统计结合
- df.types:查看DataFrame数据的每列的数据类型
- df.info():获取 DataFrame数据 的简要摘要
- df.head(n):查看DataFrame数据前n行的数据
- df.tail(n):查看DataFrame数据后n行的数据
- df.isnull():判断DataFrame数据的值是否为空,为空的地方返回True,其余地方返回False
关于查看DataFrame数据列的情况的
- df.columns:查看DataFrame数据的每列项
- df.column_name / df[column_name]:查看DataFrame数据某列的所有项
- Serites.value_counts()/ df[column_index].value_counts():查看DataFrame数据中某列下各项数据的计数
排序
- sort:
df.sort_values():对值进行排序
df.sort_index():对索引进行排序
例子:
df.sort_index(axis=1)#让列索引升序排序
df.sort_index(axis=1,ascending=False)#让列索引降序排序
df.sort_values(by=["a","c"],ascending=False)让任选两列数据同时降序排序
- rank:
df.rank():只显示排名而不对值进行排序
筛选
- df[条件]
例子:
data1[data1["Age"]<10]
data1[(10<data1["Age"]) & (data1["Age"]<50)]
根据某筛选条件的形成新的数据需要加上.copy()
midage=data1[(10<data1["Age"]) & (data1["Age"]<50)].copy()
因为midage筛选过了,所以index会有缺失的,需要重新设置过index
midage.reset_index(inplace=True,drop=True)
读取
- df.loc:根据index位置名称来读取
- df.iloc:根据index位置数值来读取
具体例子:
loc
#一行多列
midage.loc[101,["Pclass","Sex"]]
#多行多列
midage.loc[[100,105,108],["Pclass","Name","Sex"]]
iloc
#多行多列
midage.iloc[[101,106,109],2:5]
1.1.3 保存数据
- df.to_csv(path)
结语
前三节课使用的语句学完了,但是语句具体运用到数据集中似乎好像还是有点欠缺的,这也是需要在日常的学习中有所注意。
(未完整,不定时更新)