利用kaggle网站的泰坦尼克号数据集进行学习分析
下载网址: https://www.kaggle.com/c/titanic/overview
# 导入相关库
import numpy as np
import pandas as pd
import os
(1) 使用相对路径载入数据
# 相对路径载入
os.getcwd() #查看当前工作目录,将数据集复制到这里
train_data = pd.read_csv('train.csv')
train_data.head(5)
(2) 使用绝对路径载入数据
# 绝对路径载入
train_data = pd.read_csv(r'F:\jupyter\datawhale_dataAnalysis\train.csv')
train_data.head(5)
加载其他格式的数据集,例如txt,xlsx等可以参考以下链接:
IO tools (text, CSV, HDF5, …) — pandas 1.2.4 documentation (pydata.org)
数据加载-简书
Comparison with SQL — pandas 1.2.4 documentation (pydata.org)
目的是从超大的数据集中读取电脑内存所能承受大小的数据集
for chunk in chunkers:
print(chunk)
print(chunk.shape)
print(type(chunk))
colnames = ['乘客ID','是否幸存','仓位等级','姓名','性别','年龄','兄弟姐妹个数','父母子女个数','船票信息','票价','客舱','登船港口']
# train_data = pd.read_csv('train.csv', names=colnames,header=0) 乘客ID在数据列中
train_data = pd.read_csv('train.csv', names=colnames,header=0,index_col='乘客ID')
train_data
train_data.to_csv('train_chinese.csv',encoding='GBK')
train_data.info()
train_data.describe()
# 查看每一列的缺失值个数
train_data.isnull().sum()
# 可视化缺失值
import missingno as msno
msno.matrix(train_data)
msno.bar(train_data)
缺失值处理:删除;填充(线性插值、移动平均、向前/向后、机器学习建模方法)
# 画箱线图
import matplotlib.pyplot as plt
import seaborn as sns
plt.figure(figsize=(12,6))
plt.grid(linestyle="--",alpha=0.2) #加格子线
sns.boxplot(x="Survived", y='Age', data=train_data, showmeans=True)
plt.tight_layout()
(2条消息) pandas数据的异常值判断、可视化以及异常值的处理_梁先森的博客-CSDN博客
异常值处理:用max/min代替
https://pandas.pydata.org/pandas-docs/stable/user_guide/dsintro.html
删除一列的方法:del,drop(inplace=True),pop
df.loc[‘label’] = df.iloc[index]
#将midage的数据中第100,105,108行的"Pclass","Name"和"Sex"的数据显示出来
midage.loc[[100,105,108],['Pclass','Name','Sex']]
midage.iloc[[100,105,108],[2,3,4]]
# 以"Age"为条件,将年龄在10岁以上和50岁以下的乘客信息显示出来,并将这个数据命名为midage
# 交集:&;并集:|
midage = train_data[(train_data["Age"]>10)& (train_data["Age"]<50)]
midage
Comparison with SQL — pandas 1.2.4 documentation (pydata.org)
# 例子:数据挖掘hw3
gp = data.groupby(["省份"])["累计确诊人数"].sum().reset_index() # reset_index重置index
gp['累计确诊人数'] = gp['累计确诊人数'].astype('int') #对原始数据进行转换并覆盖原始数据列
gp
tablebar = gp.sort_values(by='累计确诊人数',ascending=False).head(10)
tablebar.index = range(len(tablebar))
tablebar
《利用Python进行数据分析》/《Python for Data Analysis》第五章
# 行索引(默认升序)
df.sort_index()
# 列索引(默认升序)
df.sort_index(axis=1)
# 行索引降序
df.sort_index(ascending=False)
df.sort_values(by=['票价', '年龄'], ascending=False)
可分析票价和存活(存活率)之间的关系,年龄和存活(存活率)之间的关系
# 最大家族有多少人
max(df['兄弟姐妹个数'] + df['父母子女个数'])
df.sort_values(by=['票价', '年龄'], ascending=False)
可分析票价和存活(存活率)之间的关系,年龄和存活(存活率)之间的关系
# 最大家族有多少人
max(df['兄弟姐妹个数'] + df['父母子女个数'])