Pandas基于两种数据类型: series 与 dataframe 。

1、Series

一个series是一个一维的数据类型,其中每一个元素都有一个标签。类似于Numpy中元素带标签的数组。其中,标签可以是数字或者字符串。

import numpy as np

import pandas as pd

s = pd.Series([1, 2, 5, np.nan, 6, 8])

print(s)

输出:

0    1.0

1    2.0

2    5.0

3    NaN

4    6.0

5    8.0

dtype: float64

2、DataFrame

一个dataframe是一个二维的表结构。Pandas的dataframe可以存储许多种不同的数据类型,并且每一个坐标轴都有自己的标签。你可以把它想象成一个series的字典项。

创建一个 DateFrame:

#创建日期索引序列

dates =pd.date_range('20130101', periods=6)

print(type(dates))

#创建Dataframe,其中 index 决定索引序列,columns 决定列名

df =pd.DataFrame(np.random.randn(6,4), index=dates, columns=list('ABCD'))

print(df)

输出:

<class 'pandas.core.indexes.datetimes.DatetimeIndex'>

A         B         C         D

2013-01-01  0.406575 -1.356139  0.188997 -1.308049

2013-01-02 -0.412154  0.123879  0.907458  0.201024

2013-01-03  0.576566 -1.875753  1.967512 -1.044405

2013-01-04  1.116106 -0.796381  0.432589  0.764339

2013-01-05 -1.851676  0.378964 -0.282481  0.296629

2013-01-06 -1.051984  0.960433 -1.313190 -0.093666

字典创建 DataFrame

df2 =pd.DataFrame({'A' : 1.,

'B': pd.Timestamp('20130102'),

'C': pd.Series(1,index=list(range(4)),dtype='float32'),

'D': np.array([3]*4,dtype='int32'),

'E': pd.Categorical(["test","train","test","train"]),

'F':'foo' })

print(df2)

输出:

A          B    C  D      E    F

0  1.0 2013-01-02  1.0  3   test  foo

1  1.0 2013-01-02  1.0  3  train  foo

2  1.0 2013-01-02  1.0  3   test  foo

3  1.0 2013-01-02  1.0  3  train  foo

1.  导入模块

import pandas as pd

import numpy as np

2.  读取excel文件

df = pd.read_csv(path='file.csv')

参数:header=None 用默认列名,0,1,2,3...

names=['A', 'B', 'C'...] 自定义列名

index_col='A'|['A', 'B'...] 给索引列指定名称,如果是多重索引,可以传list

skiprows=[0,1,2] 需要跳过的行号,从文件头0开始,skip_footer从文件尾开始

nrows=N 需要读取的行数,前N行

chunksize=M 返回迭代类型TextFileReader,每M条迭代一次,数据占用较大内存时使用

sep=':'数据分隔默认是',',根据文件选择合适的分隔符,如果不指定参数,会自动解析

skip_blank_lines=False 默认为True,跳过空行,如果选择不跳过,会填充NaN

converters={'col1', func} 对选定列使用函数func转换,通常表示编号的列会使用(避免转换成int)

dfjs = pd.read_json('file.json') 可以传入json格式字符串

dfex = pd.read_excel('file.xls', sheetname=[0,1..]) 读取多个sheet页,返回多个df的字典

3.     查询数据

df.shape                        #显示数据的多少行和多少列

df.dtypes                       #显示数据的格式

df.columns                      #显示数据的所有列名

df.head(n)                      #显示数据的前n=5行

df.tail(n)                      #显示数据的后n=5行

df.head(1)[‘date’]            #获取第一行的date列

df.head(1)[‘date’][0]         #获取第一行的date列的元素值

df.describe(include='all')      # all代表需要将所有列都列出

df.columns.tolist()             #把列名转换为list

df.T                            #对数据的转置:

df.notnull()                    #df的非空值为True

df.isnull()                     #isnull是Python中检验空值的函数,返回的结果是逻辑值,包含空值返回True,不包含则返回False。可以对整个数据表进行检查,也可以单独对某一列进行空值检查。

df[“列名”]                    #返回这一列(“列名”)的数据

df[[“name”,”age”]]      #返回列名为name和 age的两列数据

df[‘列字段名’].unique()   #显示数据某列的所有唯一值, 有0值是因为对数据缺失值进行了填充

df = pd.read_excel(file,skiprows=[2] )      #不读取哪里数据,可用skiprows=[i],跳过文件的第i行不读取

df.loc[0]              #使用loc[]方法来选择第一行的数据

df.loc[0][“name”]     #使用loc[]方法来选择第一行且列名为name的数据

df.loc[2:4]             #返回第3行到第4行的数据

df.loc[[2,5,10]]        #返回行标号为2,5,10三行数据,注意必须是由列表包含起来的数据。

df.loc[:,’test1’]     #获取test1的那一列,这个冒号的意思是所有行,逗号表示行与列的区分

df.loc[:,[‘test1’,’test2’]]     #获取test1列和test2列的数据

df.loc[1,[‘test1’,’test2’]]     #获取第二行的test1和test2列的数据

df.at[1,’test1’]      #表示取第二行,test1列的数据,和上面的方法类似

df.iloc[0]              #获取第一行

df.iloc[0:2,0:2]        #获取前两行前两列的数据

df.iloc[[1,2,4],[0,2]] #获取第1,2,4行中的0,2列的数据

Python中pandas模块解析的更多相关文章

  1. Python中csv模块解析

    导入模块 import csv 2.读取csv文件 file1 = open('test1.csv', 'rb') reader = csv.reader(file1) rows = [row for ...

  2. Python中matplotlib模块解析

    用Matplotlib绘制二维图像的最简单方法是: 1.  导入模块 导入matplotlib的子模块 import matplotlib.pyplot as plt import numpy as ...

  3. Python中xlrd模块解析

    xlrd 导入模块 import xlrd 2.打开指定的excel文件,返回一个data对象 data = xlrd.open_workbook(file)                     ...

  4. Python中optionParser模块的使用方法[转]

    本文以实例形式较为详尽的讲述了Python中optionParser模块的使用方法,对于深入学习Python有很好的借鉴价值.分享给大家供大家参考之用.具体分析如下: 一般来说,Python中有两个内 ...

  5. Python中的模块介绍和使用

    在Python中有一个概念叫做模块(module),这个和C语言中的头文件以及Java中的包很类似,比如在Python中要调用sqrt函数,必须用import关键字引入math这个模块,下面就来了解一 ...

  6. python中导入模块的本质, 无法导入手写模块的解决办法

    最近身边一些朋友发生在项目当中编写自己模块,导入的时候无法导入的问题. 下面我来分享一下关于python中导入模块的一些基本知识. 1 导入模块时寻找路径 在每一个运行的python程序当中,都维护了 ...

  7. python中argparse模块用法实例详解

    python中argparse模块用法实例详解 这篇文章主要介绍了python中argparse模块用法,以实例形式较为详细的分析了argparse模块解析命令行参数的使用技巧,需要的朋友可以参考下 ...

  8. python 历险记(五)— python 中的模块

    目录 前言 基础 模块化程序设计 模块化有哪些好处? 什么是 python 中的模块? 引入模块有几种方式? 模块的查找顺序 模块中包含执行语句的情况 用 dir() 函数来窥探模块 python 的 ...

  9. Python中ConfigParser模块应用

    Python中ConfigParser模块应用 Python的ConfigParser模块定义了3个对INI文件进行操作的类 RawConfigParser.ConfigParser和SafeConf ...

随机推荐

  1. javascript状态机及在工作流中的应用

    #javascript状态机及在工作流中的应用 ##状态机 什么叫状态机(Finite State Machine),书面上的解释可以自己借助搜索引擎寻找到.通俗地来讲是一个状态定义.查找.切换和事件 ...

  2. 移动web、webApp、混合APP、原生APP、androd H5混合开发 当无网络下,android怎么加载H5界面

    PhoneGap是一个采用HTML,CSS和JavaScript的技术,创建移动跨平台移动应用程序的快速开发平台.它使开发者能够在网页中调用IOS,Android,Palm,Symbian,WP7,W ...

  3. (第十三周)Final阶段成员贡献分

    项目名:食物链教学工具 组名:奋斗吧兄弟 组长:黄兴 组员:李俞寰.杜桥.栾骄阳.王东涵 个人贡献分=基础分+表现分 基础分=5*5*0.5/5=2.5 成员得分如下: 成员 基础分 表现分 个人贡献 ...

  4. hibernate设置二级缓存时报错java.lang.NoClassDefFoundError: org/hibernate/engine/jndi/JndiNameException

    错误提示大概意思是,没有类定义错误,就是找不到要使用的hibernate二级缓存管理引擎类.我在这用的是ehcache二级轻量级缓存,报错原因可能是导入的jar包版本和使用的hibernate框架核心 ...

  5. nginx 编译安装以及简单配置

    前言 Nginx的大名如雷贯耳,资料太多了,网上一搜一大把,所以这里就不阐述nginx的工作原理了,只是简单的编译安装nginx,然后呢,简单配置一下下. 下载Nginx.安装 下载地址:http:/ ...

  6. PAT 7-14 公路村村通

    https://pintia.cn/problem-sets/1111189748004499456/problems/1111189831248850957 现有村落间道路的统计数据表中,列出了有可 ...

  7. ocrosoft 程序设计提高期末复习问题M 递归求猴子吃桃

    http://acm.ocrosoft.com/problem.php?cid=1172&pid=12 题目描述 猴子吃桃问题.猴子第1天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个. ...

  8. 2 Interrupting Appropriately

    1 Interrupting someone politely e.g. Excuse me for interrupting, but may I ask a question? Sure. Of ...

  9. Sublime Text3配置

    { "default_encoding": "UTF-8", "font_size": 16.0, "tab_size" ...

  10. 莫烦keras学习自修第二天【backend配置】

    keras的backend包括tensorflow和theano,tensorflow只能在macos和linux上运行,theano可以在windows,macos及linux上运行 1. 使用配置 ...