目录:

  1. DataFrame概念
  2. DataFrame创建
  3. 基本操作

  4. 一些常用的函数

  • apply
  • memory_usage
  • pivot_table

1、DataFrame概念

Series对应的是一维序列,而DataFrame对应的是二维表结构(表格型的数据结构)

DataFrame可以看成共享同一个索引index的Series集合。

2、DataFrame创建

DataFrame对象可以由列表、元祖、字典创建,然后通过DataFrame函数创建,如:name和pay为列索引,行索引用默认的0,1,2

字典创建:

列表创建:然后通过DataFrame创建,index作为行索引,columns作为列索引。

3、基本操作:

  • 查看dataframe的行索引:dataframe.index
  • 查看dataframe的列索引:dataframe.columns
  • 查看dataframe的值:dataframe.values   【值的类型为numpy.narray】
  • 通过dataframe['列名'] 来查看值 , 【值的类型为series】
  • 查看dataframe单值索引:dataframe['列名']['行名'](注意先列后行)

  用循环输出所有的值:

  for i in dataframe.columns:

    for j in dataframe.index:

      print(dataframe[i][j])

  • 查看dataframe的前n行:dataframe.head(n)
  • 查看dataframe的后n行:dataframe.tail(n)
  • 查看dataframe的数据描述:dataframe.describe【得到的结果为count、mean、std、min、25%、50%、75%、max】
  • 查看dataframe的维度:dataframe.shape
  • 查看dataframe的数据总个数:dataframe.size
  • 查看dataframe的区域数据:dataframe.loc[行标签,[ 列标签 ] ] 函数  和  dataframe.iloc[ 行标签物理位置,[ 列标签物理位置 ] ]

    (参照以下这张图)

    切片行索引:dataframe.loc['2017-07-03':'2017-07-06'],只输出从3号到6号的值。

dataframe.iloc[2:6]

  进行列索引:dataframe.loc['2017-07-03':'2017-07-06',['value','code']]

dataframe.iloc[2:6,[0,1]]

  • 查看dataframe的单个值:dataframe.at[行标签,列标签]
  • 查看dataframe多个值:dataframe.ix[1:3,1:3]或者dataframe['a':'c','B':'D']即ix既可以通过属性来查看又可以通过行列数来查看。
  • 修改dataframe的某个列名:dataframe.rename(  columns={  '要修改的名称'  : '改后的名称' },inspace=True)
  • 提取dataframe的某一些特定行:isin

  # 筛选p1列中值为'SD'和'HN'的行:df [ df.p1.isin ( ['SD','HN'] ) ]

  • 不在里面:前面加一个~

  #   ~df [ df.p1.isin ( ['SD','HN'] ) ]

  • pandas.DataFrame排除特定行:

   #删除p1列中值为'SD'和'HN'的行

   将p1转换为列表,再从列表中移除特定的行:

  1. ex_list = list(df.p1)
  2. ex_list.remove('SD')
  3. ex_list.remove('HN')
  4. df[df.p1.isin(ex_list)]

条件筛选功能:

简单统计功能:

(求均值)dataframe[  行标签或者列标签  ].mean()

(求最大值)dataframe[  行标签或者列标签  ].max()

(求和)sum ( dataframe [ 行标签或者列标签 ] )

(排序):按照行索引排序,按照值排序等:dataframe.sort_index、dataframe.sort_values(by='标签') 【还有一些参数,比如ascending=False逆序排序】

(分组):dataframe.groupby('标签')  【https://blog.csdn.net/youngbit007/article/details/54288603

    属性:as_index、axis、sort、

    dataframe.groupby( ['标签1','标签2'] , as_index = False ),就是不将['标签1','标签2']作为index,默认是True。

  axis = 1

level:

函数:sum()、agg()、count()、mean()

af.groupby(['name','course'])['score'].sum()#先将af按照name进行分组,再按照course进行分组,最后将score进行sum。

    

    

(合并):①append②concat③merge

      append是追加

      concat是将多个相同的dataframe合并,不用考虑有没有相同的字段。

      merge类似数据库中的join,需要有相同的字段来合并。

      pd.merge(dataframe1,dataframe2,on='相同的标签' )【可以完成sql中很多连接的工作】

https://www.cnblogs.com/guxh/p/9451532.html

(转置):dataframe.T

(去重):dataframe = dataframe.drop_duplicates():返回了一个移除重复值的dataframe。

     dataframe = dataframe.drop_duplicates( [ 'A' ]) :希望对A这一列重复的值删除。

4、例子:

创建一个DataFrame:

  1. import numpy as np
  2. import pandas as pd
  3. dates=pd.date_range('2017-07-01',periods=7)
  4. col=['value']
  5. data=[]
  6. for i in range(1,8):
  7. data.append(i)
  8. frame=pd.DataFrame(data,index=dates,columns=col)
  9. print(frame)
  10.  
  11. frame['code']=['a','b','c','d','e','f','g']
    frame['day']=frame.index.day#将行索引的日期拆成一列加入到dataframe中
    frame['day'].value_counts()

5、一些常用的函数

(1)删除缺失值:dropna(axis=0,subset=['Age','Sex']:意思是将属性Age或者Sex为空的列删除。

(2)数据透视表:df.pivot_table(index= ,value=,aggfunc=):index是按照该属性为基准,value是要作用的值,aggfunc是进行什么函数操作,如:

df.pivot_table(index="Pclass", values="Survived", aggfunc=np.mean):以Pclass为分组,对Survived进行均值操作。

(3)df.sort_values(属性名,ascending=False):对df将按属性升值来排序。

(4)apply函数:df.apply(自定义的函数名),想运用自定义的函数对df进行操作。

(5)memory_usage:返回每一列所占的内存大小。

  1.  

Python笔记8----DataFrame(二维)的更多相关文章

  1. Python笔记25-----------创建二维列表【浅copy】和转置

    一.创建二维列表 1.二维列表创建第二维的时候,如果采用*2这种方式,这是一种浅复制的方式,同时引用到同一个list,如上图的C. 这种形式,不方便修改C[ i ][ j ]的数据,如果改C[ 0 ] ...

  2. python笔记 利用python 自动生成条形码 二维码

    1. ean13标准条形码 from pystrich.ean13 import EAN13Encoder encode = EAN13Encoder(') encode.save('d:/barco ...

  3. Python将文本生成二维码

    #coding:utf-8 ''' Python生成二维码 v1.0 主要将文本生成二维码图片 测试一:将文本生成白底黑字的二维码图片 测试二:将文本生成带logo的二维码图片 ''' __autho ...

  4. Python使用QRCode生成二维码

    PIL和QRCode下载地址: http://www.pythonware.com/products/pil/ https://pypi.python.org/pypi/qrcode/5.1 #你可能 ...

  5. python库myqr生成二维码

    python中有一个好玩的库,不仅可以生成各种花色的二维码,还可以生成动态二维码. MyQR是一个能够生成自定义二维码的第三方库,可以根据需要生成普通二维码.带图片的艺术二维码,也可以生成动态二维码 ...

  6. Python 实现扫码二维码登录

    最近在做一个扫码登录功能,为此我还在网上搜了一下关于微信的扫描登录的实现方式.当这个功能完成了后,我决定将整个实现思路整理出来,方便自己以后查看也方便其他有类似需求的程序猿些. 要实现扫码登录我们需要 ...

  7. 使用Python第三方库生成二维码

    本文主要介绍两个可用于生成二维码的Python第三方库:MyQR和qrcode. MyQR的使用: 安装: pip install MyQR 导入: from MyQR import myqr imp ...

  8. python生成动态个性二维码

    1 安装工具2 生成普通二维码3 带图片的二维码4 动态 GIF 二维码5 在Python程序中使用 一.安装 首先在python环境下运行, 打开cmd进入python27 进入scripts 然后 ...

  9. python与php生成二维码对比

    php生成二维码 include 引入的库单独下载 <?php header("Content-type:text/html;charset=utf-8"); error_r ...

随机推荐

  1. Ubuntu+XAMPP+Wordpress的安装与配置问题

    Wordpress自动更新以及安装在线主题的时候需要输入FTP信息 打开/opt/lampp/htdocs/wordpress/wp-config.php文件 define('FS_METHOD',' ...

  2. ISAP 算法的学习

    http://www.renfei.org/blog/isap.html 算法与数学 网络流-最大流问题 ISAP 算法解释 2013-08-07Renfei Song 2 条评论 内容提要 [隐藏] ...

  3. redis--周边知识点

    一般Redis服务器内存超过128G内存的机器是非常少的 很少在redis中缓存视频,除非是快播,一般都是缓存文本字段 redis可视化的工具和SQL的管理工具是不一样的,最好是使用REDIS的she ...

  4. 系统报 “client没有所需的特权” 的解决方法

    今在对服务端代码进行单元測试的时候.突然报出例如以下错误: client没有所需的特权 后经网上查找,相同的问题都是属于对C盘读写的问题.回忆自己的项目也须要对C盘进行创建文件夹和读写文件.故尝试运行 ...

  5. phonegap(cordova) 自己定义插件代码篇(四)----读取本地图片

    有时候确实知道本地图片地址,要获取到base64  /** * 获取本地图片,包括路径和压缩后的 base64 */ (function (cordova) { var define = cordov ...

  6. Codeforces Round #349 (Div. 2) C. Reberland Linguistics DP+set

    C. Reberland Linguistics     First-rate specialists graduate from Berland State Institute of Peace a ...

  7. hdoj--2151--Worm(dp)

    Worm Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submi ...

  8. mysql查询orderby

    --按某一字段分组取最大(小)值所在行的数据 /* 数据如下: name val memo a    2   a2(a的第二个值) a    1   a1--a的第一个值 a    3   a3:a的 ...

  9. Kaggle之泰坦尼克号幸存预测估计

    上次已经讲了怎么下载数据,这次就不说废话了,直接开始.首先导入相应的模块,然后检视一下数据情况.对数据有一个大致的了解之后,开始进行下一步操作. 一.分析数据 1.Survived 的情况 train ...

  10. iOS开发中UIDatePicker控件的使用方法简介

    iOS上的选择时间日期的控件是这样的,左边是时间和日期混合,右边是单纯的日期模式. 您可以选择自己需要的模式,Time, Date,Date and Time  , Count Down Timer四 ...