python初探——pandas使用
一、简介
pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。Pandas 纳入了大量库和一些标准的数据模型,提供了高效地操作大型数据集所需的工具。pandas提供了大量能使我们快速便捷地处理数据的函数和方法,pandas为时间序列分析提供了很好的支持。
二、数据结构
- Series:一维数组,与Numpy中的一维array类似。二者与Python基本的数据结构List也很相近,其区别是:List中的元素可以是不同的数据类型,而Array和Series中则只允许存储相同的数据类型,这样可以更有效的使用内存,提高运算效率。
- Time- Series:以时间为索引的Series。
- DataFrame:二维的表格型数据结构。很多功能与R中的data.frame类似。可以将DataFrame理解为Series的容器。以下的内容主要以DataFrame为主。
- Panel :三维的数组,可以理解为DataFrame的容器。
三、使用
1、series
# data_structure.py import pandas as pd
import numpy as np series1 = pd.Series([1, 2, 3, 4])
print("series1:\n{}\n".format(series1))
series1:
0 1
1 2
2 3
3 4
dtype: int64 #此行表示数据的类型为int64,输出中第一行是index,第二行是value
我们可以分别打印出Series中的数据和索引:
# data_structure.py
print("series1.values: {}\n".format(series1.values))
print("series1.index: {}\n".format(series1.index))
series1.values: [1 2 3 4] #默认的index是从0开始的数字形式
series1.index: RangeIndex(start=0, stop=4, step=1)
索引可以是任何数据类型,例如字符串:
# data_structure.py series2 = pd.Series([1, 2, 3, 4, 5, 6, 7],
index=["C", "D", "E", "F", "G", "A", "B"])
print("series2:\n{}\n".format(series2))
print("E is {}\n".format(series2["E"]))
series2:
C 1
D 2
E 3
F 4
G 5
A 6
B 7
dtype: int64 E is 3
2、DataFrame
不指定数据内容,创建一个4*4的DataFrame:
# data_structure.py df1 = pd.DataFrame(np.arange(16).reshape(4,4))
print("df1:\n{}\n".format(df1))
输出如下(列叫做column,行叫做index,都是从0开始的整数):
df1:
0 1 2 3
0 0 1 2 3
1 4 5 6 7
2 8 9 10 11
3 12 13 14 15
指定column和index来创建DataFrame:
# data_structure.py df2 = pd.DataFrame(np.arange(16).reshape(4,4),
columns=["column1", "column2", "column3", "column4"],
index=["a", "b", "c", "d"])
print("df2:\n{}\n".format(df2))
结果如下:
df2:
column1 column2 column3 column4
a 0 1 2 3
b 4 5 6 7
c 8 9 10 11
d 12 13 14 15
指定数据列创建DataFrame:
# data_structure.py
df3 = pd.DataFrame({"note" : ["C", "D", "E", "F", "G", "A", "B"],
"weekday": ["Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"]})
print("df3:\n{}\n".format(df3))
结果如下(DataFrame的不同列可以是不同的数据类型):
df3:
note weekday
0 C Mon
1 D Tue
2 E Wed
3 F Thu
4 G Fri
5 A Sat
6 B Sun
添加或者删除列:
# data_structure.py df3["No."] = pd.Series([1, 2, 3, 4, 5, 6, 7])
print("df3:\n{}\n".format(df3)) del df3["weekday"]
print("df3:\n{}\n".format(df3))
结果如下:
df3:
note weekday No.
0 C Mon 1
1 D Tue 2
2 E Wed 3
3 F Thu 4
4 G Fri 5
5 A Sat 6
6 B Sun 7 df3:
note No.
0 C 1
1 D 2
2 E 3
3 F 4
4 G 5
5 A 6
6 B 7
3、Index对象与数据访问

loc:通过行和列的索引来访问数据(定义时的索引)。df.ioc[1:3,1:5],取出第2行至第3行的第2列至第5列的数据。注意不包括第3行,第5列。df.iloc[[1,2],[2,3]]取出第2行和第3行的第3列和第4列数据。iloc:通过行和列的下标来访问数据(从0到N-1的整数,是指行和列的位置)。df.ioc[“a”:“f”,“A”:“C”],取出a行至f行的A列至C列的数据。注意包括f行和C列。df.iloc[[”a“,”b“],[A”“,”B“]]取出a行和b行的A列和B列数据。
# data_structure.py
print("Note C, D is:\n{}\n".format(df3.loc[[0, 1], "note"])) #访问行索引是0和1,列索引是note的元素
print("Note C, D is:\n{}\n".format(df3.iloc[[0, 1], 0])) #访问行下标是0和1,列下标是0的元素
结果如下(对于df3来说,行下标和行索引是一样的):
Note C, D is:
0 C
1 D
Name: note, dtype: object Note C, D is:
0 C
1 D
Name: note, dtype: object
4、另外pandas还支持对各种类型文件的操作,对无效值和字符串的处理等操作。
python初探——pandas使用的更多相关文章
- 01 Python初探
Python初探 Become a better version of yourself! 诞生 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年开始写Python ...
- Python利用pandas处理Excel数据的应用
Python利用pandas处理Excel数据的应用 最近迷上了高效处理数据的pandas,其实这个是用来做数据分析的,如果你是做大数据分析和测试的,那么这个是非常的有用的!!但是其实我们平时在做 ...
- Python数据分析--Pandas知识点(三)
本文主要是总结学习pandas过程中用到的函数和方法, 在此记录, 防止遗忘. Python数据分析--Pandas知识点(一) Python数据分析--Pandas知识点(二) 下面将是在知识点一, ...
- 基于 Python 和 Pandas 的数据分析(4) --- 建立数据集
这一节我想对使用 Python 和 Pandas 的数据分析做一些扩展. 假设我们是亿万富翁, 我们会想要多元化地进行投资, 比如股票, 分红, 金融市场等, 那么现在我们要聚焦房地产市场, 做一些这 ...
- 基于 Python 和 Pandas 的数据分析(2) --- Pandas 基础
在这个用 Python 和 Pandas 实现数据分析的教程中, 我们将明确一些 Pandas 基础知识. 加载到 Pandas Dataframe 的数据形式可以很多, 但是通常需要能形成行和列的数 ...
- 基于 Python 和 Pandas 的数据分析(1)
基于 Python 和 Pandas 的数据分析(1) Pandas 是 Python 的一个模块(module), 我们将用 Python 完成接下来的数据分析的学习. Pandas 模块是一个高性 ...
- python安装pandas和lxml
一.安装python 二.安装pip 三.安装mysql-connector(window版):下载mysql-connector-python-2.1.3,解压后进入目录,命令安装:pip inst ...
- python之pandas用法大全
python之pandas用法大全 更新时间:2018年03月13日 15:02:28 投稿:wdc 我要评论 本文讲解了python的pandas基本用法,大家可以参考下 一.生成数据表1.首先导入 ...
- python之pandas简单介绍及使用(一)
python之pandas简单介绍及使用(一) 一. Pandas简介1.Python Data Analysis Library 或 pandas 是基于NumPy 的一种工具,该工具是为了解决数据 ...
随机推荐
- jenkins安装与配置---window,mis包直接安装
https://my.oschina.net/aibinxiao/blog/1457218 Jenkins在Windows下的安装与配置 已经在https://jenkins.io/下载好了Win ...
- 菜鸡的Java笔记 数字操作类
数字操作类 Math 类的使用 Random 类的使用 BigInteger 和 BigDecimal 类的使用 Math 是一 ...
- <C#任务导引教程>练习一
//1,定位显示ASCI码值为30到119的字符using System;class Program{ static void Main() { int i, n = 0; ...
- 【PS】证件照修改尺寸
证件照同时修改尺寸.分辨率.像素 2019-07-14 12:56:25 by冲冲 1. 需求 实现证件照自由切换一寸.小一寸.大一寸.二寸. 2. 步骤 ① 裁剪工具 -- 原始比例 -- 存储 ...
- Java设计模式之(十)——组合模式
1.什么是组合模式? Compose objects into tree structures to represent part-whole hierarchies.Composite lets c ...
- stat命令的实现-mysate(必做)
学习使用stat(1),并用C语言实现 1. 提交学习stat(1)的截图 使用 man 1 stat 查看帮助手册 从图中可以看到stat的用法是display file or file syste ...
- CF1418G Three Occurrences
统计满足某些性质的区间个数. 我们考虑移动 \(r\) 指针. 然后考虑把不能选的区间 \(ban\)掉. 具体看下细节吧. #include<iostream> #include< ...
- 模版 动态 dp
模版 动态 dp 终于来写这个东西了.. LG 模版:给定 n 个点的数,点有点权, $ m $ 次修改点权,求修改完后这个树的最大独立集大小. 我们先来考虑朴素的最大独立集的 dp \[dp[u][ ...
- 如何反向推断基因型文件中的参考碱基(REF/ALT)?
目录 需求 解决 方法一 方法二 需求 客户随手丢来一个基因型文件,类似于hapmap格式,只是少了中间多余的那几列,像这种类hapmap格式文件,往往是芯片数据. 这样的数据因为缺乏等位基因:参考碱 ...
- Python基础之流程控制if判断
目录 1. 语法 1.1 if语句 1.2 if...else 1.3 if...elif...else 2. if的嵌套 3. if...else语句的练习 1. 语法 1.1 if语句 最简单的i ...