【数据分析】第一章 数据载入和初步观察

第一章 数据载入和初步观察

导入numpy和pandas

  1. NumPy系统是Python的一种开源的数值计算扩展,这种工具可用来存储和处理大型矩阵,比Python自身的嵌套列表结构要高效的多(该结构也可以用来表示矩阵(matrix))。

  2. pandas 是基于NumPy的一种工具,该工具是为解决数据分析任务而创建的。Pandas 纳入了大量库和一些标准的数据模型,提供了高效地操作大型数据集所需的工具。pandas提供了大量能使我们快速便捷地处理数据的函数和方法。它是使Python成为强大而高效的数据分析环境的重要因素之一。

    导入:
    import numpy as np
    import pandas as pd
    

绝对路径/相对路径载入数据

  1. 绝对路径就是最完整的路径

  2. 相对路径的相对则是不完整路径,这个相对指的就是相对于当前文件夹路径

    • 我们常用’/‘来表示相对路径,’\‘来表示绝对路径,

    • 绝对路径载入:(2种方法)

      import os #导入os
      1. os.path.abspath('train.csv')
      2. path=os.path.abspath('train.csv')#设置全局变量path
      df = pd.read_csv(path)#给df重新赋值,再次执行df,仍然可显示出train.csv
      
    • 相对路径载入:

      df= pd.read_csv('train.csv')#设置全局变量df,给df赋值,执行df可显示出train.csv 
      
    • 载入文件夹的数据:

      df=pd.read_csv('文件夹/文件名')
      

读取数据

  1. df.head() #输出前五行数据
    df.T #表格转置
    os.getcwd()#查看当前工作目录
    
  2. read_csv和read_table都是是加载带分隔符的数据,每一个分隔符作为一个数据的标志,但二者读出来的数据格式还是不一样的,read_csv是以,为分隔符,read_table是以制表符 \t 作为数据的标志,也就是以行为单位进行存储。

    • pd.read_csv(path) #以‘,’为分隔符读取数据
      pd.read_table(path)#以‘\t(制表符)’为分隔符读取数据
      pd.read_table(path,sep=',')=pd.read_csv(path) 
      

数据模块 chunksize

  1. 使用chunksize逐块读取数据后,read_csv操作返回一个TextParser对象

  2. 例子数据文件总共有10000行数据,使用chunksize=1000后,read_csv操作返回一个TextParser对象,该对象总共有10个元素,遍历过程中打印chunkercount验证得到

  3. 在这里插入图片描述

  4. 打印数据:

    • df.get_chunk() #逐块读取后的text file reader文件
      

将表头改为中文

  1. df.columns=['乘客ID'...]
    

初步观察数据

  1. df.info() #显示有关DateFrame的信息,包括索引的数据类型dtype和列的数据类型dtype,非空值的数量和内存使用情况。
    df.describe()#用于生成描述性统计信息。描述性统计数据:数值类型的包括均值,标准差,最大值,最小值,分位数等;类别的包括个数,类别的数目,最高数量的类别及出现次数等;输出将根据提供的内容而有所不同。
    
  2. df.head(n) #输出表格的前n行
    df.tail(n) #输出表格的后n行
    
  3. df.isnull() #判断数据是否为空,为空的地方返回True,其余地方返回False
    df.shape #返回:(行数,列数)
    
  4. df.to_csv('[文件名]')
    # 注意:不同的操作系统保存下来可能会有乱码。可以加入`encoding='GBK' 或者 ’encoding = ’utf-8‘‘`
    

pandas基础

  1. pandas中有两个数据类型DataFrame和Series,DataFrame是二维数据,Series是一维数据

Series两种定义方法

1. s1=pd.Series([1,值2...],index=['索引1','索引2'...])
2. s=pd.Series({'a':1,'b':2,'c':3})

在这里插入图片描述

用两个一维数据构造一个二维数据

d={'one':pd.Series([1,2,3,4,5],index=['a','b','c','d','e']),'two':pd.Series({'a':1,'b':2,'c':3})} #one、two是列名,abcde是索引,
df=pd.DataFrame(d)
# 将一维数据转为dataframe
survived_sex=survived_sex.to_frame()

在这里插入图片描述

数据列相关操作

#查看df数据的每列的项:
df.columns
#查看某列所有的值:
1. df 列名 #series类型
2. df['列名'] #series类型
3. df[['列名']] #DateFrame类型
#删除某列:
   test_1=pd.read_csv('test_1.csv') #导入文件
1. del test_1 ['列名'] #原文件上删除,只能删除一列
2. test_1.pop('列名') #原文件上删除,显示删除的那列的数据
3. test_1.drop(['列名'],axis=1) #删除后生成副本文件,原文件该列未删除
   #axis=0 删除行;axis=1 删除列
4. test_1.drop(['列名'...],axis=1,inplace=True) #在原文件上删除,给inplace赋值为True
   #inplace=True:不创建新的对象,直接对原始对象进行修改;
   #inplace=False:对数据进行修改,创建并返回新的对象承载其修改结果。

筛选

1. test_1['Age']<10 #作比较,返回每一行的比较结果:ture/false(返回一维数据)
2. test_1[test_1['Age']<10] #返回二维数据
3. 交集:& 并集:| #ex:midage=test_1[(test_1['Age']>10)&(test_1['Age']<50)]

在这里插入图片描述

4. midage.loc[n] #将midage中第n行数据提取出来 (显示一维数据)
5. midage.loc[[100...],['Pclass','Sex',...]] #将midage的数据中第100行的"Pclass"和"Sex"的数据显示出来,显示二维数据
6. midage.iloc[[100,105,108],[3,4,5]] #使用iloc,参数不能为列名,而是第几列
7. midage1=midage.reset_index(drop=True) #将df的索引重新设置一下,设置为0-n
   #drop=true,会将原来的索引删掉

创建dataframe数据

sample=pd.DataFrame(np.random.randn(3,3),index=list('213'),columns=list('bca')) #随机生成值

在这里插入图片描述

排序

  1. sort_values(by, axis=0, ascending=True,inplace=False, kind=‘quicksort’, na_position=‘last’) (默认值,按列排序,升序,替换原有数据)

  2. sort_index( axis=0, ascending=True) (默认值,按列排序,升序)

  • axis 如果axis=0,那么by=“列名”或者按列索引; 如果axis=1,那么by=“行名”或者按行索引;
  • ascending: True则升序,可以是[True,False],即第一字段升序,第二个降序
  • inplace: 是否用排序后的数据框替换现有的数据框 ,True或者False
  • kind: 排序方法
  • na_position : {‘first’, ‘last’}, default ‘last’,默认缺失值排在最后面
1.#按值排序 
sample.sort_values('b') #对b列的值排序,默认  
2. #按索引排序
 sample.sort_index()
3. 任选两列数据同时排序,先排前面的的基础上再排后面的sample.sort_values(['a','c'])#排a的基础上再按c排

计算

1. 两个df数据可以直接计算,但是只计算行索引、列索引都相同的数据,其余为空(df1+df2)
2. 两列也可以直接相加df['列1']+df['列2'],值对应相加
3. df['列名'].mean() #求平均值
4. df['列名'].sum() #求总和
5. 支持除法运算符:/
6. max('列名1')/sum(df['列名2']) # 计算列1的最大值除以列2的总和值

作图

from matplotlib import pyplot as plt #导入数据包matplotlib
plt.hist(df['列名'])# hist直方图的简称
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值