动手学数据分析Task1 数据加载

文章目录

1.1 载入数据

1.1.1 导入numpy和pandas

import numpy as np
import pandas as pd

1.1.2 载入数据

  • 相对路径
  • 绝对路径
df = pd.read_csv('C:/Users/rensenlin/Desktop/sf/study_sf/first_unit/train.csv')
print(df.head(3))#绝对路径
df=pd.read_csv('train.csv')#相对路径


相对路径报错时,可用os.getcwd()查看当前目录

print(os.getcwd())#注意要import os

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

chunker = pd.read_csv('train.csv', chunksize=1000)

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

df = pd.read_csv('C:/Users/rensenlin/Desktop/sf/study_sf/first_unit/train.csv', names=['乘客ID','是否幸存','仓位等级','姓名','性别','年龄','兄弟姐妹个数','父母子女个数','船票信息','票价','客舱','登船港口'],index_col='乘客ID',header=0)
print(df.head())

1.2 初步观察

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

print(df.info())

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

print(df.head(10))

print(df.tail(15))

在这里插入图片描述

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

print(df.isnull().head())

1.3 保存数据

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

df.to_csv('C:/Users/rensenlin/Desktop/sf/study_sf/first_unit/train_chines.csv',ending='utf_8_sig')#注意加个ending='utf_8_sig'要不然会乱码

1.4 数据类型

1.4.1 pandas的两个数据类型

两个例子

sdata = {'Ohio': 35000, 'Texas': 71000, 'Oregon': 16000, 'Utah': 5000}
example_1 = pd.Series(sdata)
print(example_1)

在这里插入图片描述

data = {'state': ['Ohio', 'Ohio', 'Ohio', 'Nevada', 'Nevada', 'Nevada'],
        'year': [2000, 2001, 2002, 2001, 2002, 2003],'pop': [1.5, 1.7, 3.6, 2.4, 2.9, 3.2]}
example_2 = pd.DataFrame(data)
example_2

在这里插入图片描述
注意DataFrame有索引,且是从0开始

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

df=pd.read_csv('C:/Users/rensenlin/Desktop/sf/study_sf/first_unit/train_chines.csv')
print(df.head())

1.4.3 查看DataFrame数据的每列的项

print(df.columns)

在这里插入图片描述

1.4.4 查看"cabin"这列的所有项

print(df['客舱'].head(3))

在这里插入图片描述

1.4.5 删除多余的列

del test_1['a']

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

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

在这里插入图片描述

1.5 筛选

1.5.1 显示年龄在10岁以下的乘客信息

print(df[df['Age']<10].head(3))

在这里插入图片描述

1.5.2 并集操作

midage = df[(df["Age"]>10)& (df["Age"]<50)]
midage.head(3)

在这里插入图片描述

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

因为第一行的索引值为0 所以为99

midage = midage.reset_index(drop=True)
midage.head(3)
midage.loc[[99],['Pclass','Sex']]

注意在这里用了reset_index(),reset_index用来重置索bai引,因为有时候对dataframe做处理du后索引可能是乱的.True表示直接在原数组上对数据进行修改。False(默认)表示原数组不变,对数据进行修改之后结果给新的数组.
在这里插入图片描述

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

midage.loc[[100,105,108],['Pclass','Name','Sex']] #因为你主动的延长了行的距离,所以会产生表格形式

1.5.5 用iloc函数

midage.iloc[[100,105,108],[2,3,4]]

指定行多列和1.5.4同样的效果

1.6 了解数据

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

frame=pd.DataFrame(np.arrange(8).reshape(2,4)
print(frame)


如果想索引是特定值,可以用index(现在的0,1)和columns(现在的0,1,2,3的位置)

1.6.3 算数计算

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'])
print(frame1_a)
print(frame1_b)

在这里插入图片描述

print(frame1_a+frame1_b)

在这里插入图片描述
没有值的地方就是NaN

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

'''
还是用之前导入的chinese_train.csv如果我们想看看在船上,最大的家族有多少人(‘兄弟姐妹个数’+‘父母子女个数’),我们该怎么做呢?
'''
max(text['兄弟姐妹个数'] + text['父母子女个数'])

是的,如上,很简单,我们只需找出兄弟姐妹个数和父母子女个数之和最大的数就行,先让这两列相加返回一个DataFrame,然后用max函数求出最大值

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'])
print(frame2)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

1.6.6 分别看看泰坦尼克号数据集中 票价、父母子女 这列数据的基本统计数据

print(df.describe())

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值