利用python 学习数据分析 (学习四)
内容学习自:
Python for Data Analysis, 2nd Edition
就是这本
纯英文学的很累,对不对取决于百度翻译了
前情提要:
各种方法贴:
https://www.cnblogs.com/baili-luoyun/p/10250177.html
内容提要:本次内容主要讲的是pands基本入门
一:pandas 主要有两种数据结构
Series,DataFrame
二: Series
1:定义:
Series是一种类似于一维数组的对象,它由一组数据(各种NumPy数据类型)以及一组与之相关的数据标签(即索引)组成
2:表现形式
Series的字符串表现形式为:索引在左边,值在右边。
3:创建一个一维数组
obj =pd.Series([4,5,6,7,8]) #创建一维数组
print(obj) print(obj.index)
print(obj.values)
>>>>>>>>>
0 4
1 5
2 6
3 7
4 8
dtype: int64
RangeIndex(start=0, stop=5, step=1)
[4 5 6 7 8]
4:通过索引获得内容
1>:单索引
obj1 = pd.Series([4,6,-7,-8],index=['d','a','b','c']) #修改索引
print(obj1)
>>>>
#通过索引获得内容
print(obj1['d'])
>>>>
d 4
a 6
b -7
c -8
dtype: int64
4
2>:多索引
#多索引
print(obj1[['d','a','c']])
>>>>
d 4
a 6
b -7
c -8
dtype: int64
d 4
a 6
c -8
dtype: int64
3>:布尔过滤
print(obj1[obj1<0])
>>>>
d 4
a 6
b -7
c -8
dtype: int64
b -7
c -8
dtype: int64
4>:应用乘法
print(obj1*2)
>>>>>>>>>>
d 4
a 6
b -7
c -8
dtype: int64
d 8
a 12
b -14
c -16
dtype: int64
5>:应用级函数
print(np.exp(obj1))
>>>>>
d 4
a 6
b -7
c -8
dtype: int64
d 54.598150
a 403.428793
b 0.000912
c 0.000335
dtype: float64
6>:索引的映射关系
print('b'in obj1)
print('e'in obj1)
>>>>>
d 4
a 6
b -7
c -8
dtype: int64
True
False
5 :创建字典的Series:
1:>创建字典型Series
sdata ={'Ohio':35000,'Texas':71000,'Oregon':16000,'Utah':5000 }
obj3 =pd.Series(sdata)
print(obj3)
>>>>
Ohio 35000
Texas 71000
Oregon 16000
Utah 5000
dtype: int64
2:>Series 插入index 和valuse
sdata ={'Ohio':35000,'Texas':71000,'Oregon':16000,'Utah':5000 }
obj3 =pd.Series(sdata)
print(obj3)
# 插入index 和valuse
states =['California','Ohio','Oregon','Texas']
obj4 =pd.Series(sdata,index=states)
print(obj4)
>>>>>>>>>>>>>>
Ohio 35000
Texas 71000
Oregon 16000
Utah 5000
dtype: int64
California NaN
Ohio 35000.0
Oregon 16000.0
Texas 71000.0
dtype: float64
3>:检测数据是否缺失
l =pd.isnull(obj4)
print(l)
l2 =pd.notnull(obj4)
print(l2) >>>>>>>>>>>>
California True
Ohio False
Oregon False
Texas False
dtype: bool
California False
Ohio True
Oregon True
Texas True
dtype: bool
4>:赋予名字
obj4.name ='population'
obj4.index.name ='state'
print(obj4)
>>>>>>>>>\
state
California NaN
Ohio 35000.0
Oregon 16000.0
Texas 71000.0
Name: population, dtype: float64
5>:修改索引,修改索引的名字
obj =pd.Series([4,7,-6,3])
print(obj)
obj.index=['bob','Steve','jeff','Ryan']
print(obj)
>>>>>>>>>
0 4
1 7
2 -6
3 3
dtype: int64 bob 4
Steve 7
jeff -6
Ryan 3
dtype: int64
三:DataFrame
一:定义
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.8,3.2]
}
frame =pd.DataFrame(data)
print(frame)
>>>>>>>>>
state year pop
0 Ohio 2000 1.5
1 Ohio 2001 1.7
2 Ohio 2002 3.6
3 Nevada 2001 2.4
4 Nevada 2002 2.8
5 Nevada 2003 3.2
print(frame.head())
>>>>>>>
state year pop
0 Ohio 2000 1.5
1 Ohio 2001 1.7
2 Ohio 2002 3.6
3 Nevada 2001 2.4
4 Nevada 2002 2.8
2.2# 利用抬头排序
print(pd.DataFrame(data,columns=['year','pop','state']))
>>>>>>>>
year pop state
0 2000 1.5 Ohio
1 2001 1.7 Ohio
2 2002 3.6 Ohio
3 2001 2.4 Nevada
4 2002 2.8 Nevada
5 2003 3.2 Nevada
2.3:拆入数据如果找不到,缺失值,则返回None
# #插入数据如果找不到,缺失值,则返回NaN
#columns 列名
#index 行名
frame2 =pd.DataFrame(data,columns=['year','state','pop','debt'],
index=['one','two','three','four','five','six']
)
print(frame2)
>>>>>>>>>>>>
year state pop debt
one 2000 Ohio 1.5 NaN
two 2001 Ohio 1.7 NaN
three 2002 Ohio 3.6 NaN
four 2001 Nevada 2.4 NaN
five 2002 Nevada 2.8 NaN
six 2003 Nevada 3.2 NaN
2.4:返回columns 的值
print(frame2.columns)
>>>>>>>>
Index(['year', 'state', 'pop', 'debt'], dtype='object')
2.5:通过标记,或者属性的方式,获取某一列的值
# #单独获取某一列
print(frame2['state'])
print(frame2.year)
print('>>>>>>>>>>>>>>>>>>')
print(frame2['year']) >>>>>>>>>>>>>>
one Ohio
two Ohio
three Ohio
four Nevada
five Nevada
six Nevada
Name: state, dtype: object
one 2000
two 2001
three 2002
four 2001
five 2002
six 2003
Name: year, dtype: int64
>>>>>>>>>>>>>>>>>>
one 2000
two 2001
three 2002
four 2001
five 2002
six 2003
Name: year, dtype: int64
2.6:loc 属性获取行的所有内容
print(frame2.loc['three'])
>>>>>>>>>>
year 2002
state Ohio
pop 3.6
debt NaN
Name: three, dtype: object
2.7:通过赋值的方式进行修改
frame2['debt']=16.5
print(frame2)
>>>>>>>>
year state pop debt
one 2000 Ohio 1.5 16.5
two 2001 Ohio 1.7 16.5
three 2002 Ohio 3.6 16.5
four 2001 Nevada 2.4 16.5
five 2002 Nevada 2.8 16.5
six 2003 Nevada 3.2 16.5
2.8:以 范围内容生成赋值
frame2['dabt']=np.arange(6.)
print(frame2)
>>>>>>>>>>
year state pop debt dabt
one 2000 Ohio 1.5 NaN 0.0
two 2001 Ohio 1.7 NaN 1.0
three 2002 Ohio 3.6 NaN 2.0
four 2001 Nevada 2.4 NaN 3.0
five 2002 Nevada 2.8 NaN 4.0
six 2003 Nevada 3.2 NaN 5.0
2.9:以Series的方式进行赋值
print(frame2)
print(">>>>>>>>>>>>")
val =pd.Series([-1.2,-1.5,-1.7],index =['two','four','five'])
print(val)
print(">>>>>>>>>>>>>>")
frame2['debt'] =val
print(frame2)
>>>>>>>>>>>>>>>>>>>>>
year state pop debt
one 2000 Ohio 1.5 NaN
two 2001 Ohio 1.7 NaN
three 2002 Ohio 3.6 NaN
four 2001 Nevada 2.4 NaN
five 2002 Nevada 2.8 NaN
six 2003 Nevada 3.2 NaN
>>>>>>>>>>>>
two -1.2
four -1.5
five -1.7
dtype: float64
>>>>>>>>>>>>>>
year state pop debt
one 2000 Ohio 1.5 NaN
two 2001 Ohio 1.7 -1.2
three 2002 Ohio 3.6 NaN
four 2001 Nevada 2.4 -1.5
five 2002 Nevada 2.8 -1.7
six 2003 Nevada 3.2 NaN
2.10:布尔型运算
frame2['eastern'] =frame2.state =='Ohio'
print(frame2)
>>>>>>>>
year state pop debt eastern
one 2000 Ohio 1.5 NaN True
two 2001 Ohio 1.7 NaN True
three 2002 Ohio 3.6 NaN True
four 2001 Nevada 2.4 NaN False
five 2002 Nevada 2.8 NaN False
six 2003 Nevada 3.2 NaN False
利用python 学习数据分析 (学习四)的更多相关文章
- "利用python进行数据分析"学习记录01
"利用python进行数据分析"学习记录 --day01 08/02 与书相关的资料在 http://github.com/wesm/pydata-book pandas 的2名字 ...
- Python: 利用Python进行数据分析 学习记录
-----15:18 2016/10/14----- 1. import numpy as np;import pandas as pd values = pd.Series(np.random.no ...
- 利用python进行数据分析——(一)库的学习
总结一下自己对python常用包:Numpy,Pandas,Matplotlib,Scipy,Scikit-learn 一. Numpy: 标准安装的Python中用列表(list)保存一组值,可以用 ...
- PYTHON学习(三)之利用python进行数据分析(1)---准备工作
学习一门语言就是不断实践,python是目前用于数据分析最流行的语言,我最近买了本书<利用python进行数据分析>(Wes McKinney著),还去图书馆借了本<Python数据 ...
- $《利用Python进行数据分析》学习笔记系列——IPython
本文主要介绍IPython这样一个交互工具的基本用法. 1. 简介 IPython是<利用Python进行数据分析>一书中主要用到的Python开发环境,简单来说是对原生python交互环 ...
- 《利用Python进行数据分析·第2版》第四章 Numpy基础:数组和矢量计算
<利用Python进行数据分析·第2版>第四章 Numpy基础:数组和矢量计算 numpy高效处理大数组的数据原因: numpy是在一个连续的内存块中存储数据,独立于其他python内置对 ...
- 利用python进行数据分析--(阅读笔记一)
以此记录阅读和学习<利用Python进行数据分析>这本书中的觉得重要的点! 第一章:准备工作 1.一组新闻文章可以被处理为一张词频表,这张词频表可以用于情感分析. 2.大多数软件是由两部分 ...
- 利用Python进行数据分析_Pandas_基本功能
申明:本系列文章是自己在学习<利用Python进行数据分析>这本书的过程中,为了方便后期自己巩固知识而整理. 第一 重新索引 Series的reindex方法 In [15]: obj = ...
- 利用Python进行数据分析 第4章 IPython的安装与使用简述
本篇开始,结合前面所学的Python基础,开始进行实战学习.学习书目为<利用Python进行数据分析>韦斯-麦金尼 著. 之前跳过本书的前述基础部分(因为跟之前所学的<Python基 ...
- 利用Python进行数据分析(第二版)电子版书籍分享
资料下载地址: 链接:https://pan.baidu.com/s/1y1C0bJPkSn7Sv6Eq9G5_Ug 提取码:vscu <利用Python进行数据分析(第二版)>高清中文版 ...
随机推荐
- Spring IoC底层原理
-------------------siwuxie095 Spring IoC 底层原理 1.IoC 即 Invers ...
- PHP中的各种POST或GET请求
1.表单<form> 2.fsockopen(); 3.jquery语法: $.post ($.ajax的简写) 示例代码: <!DOCTYPE html> <html& ...
- PHP与Imagemagick
Imagemagick:相关站点: ImageMagick中文站:http://www.imagemagick.com.cn/ ImageMagick英文站:http://www.imagemagic ...
- jsp页面拨打电话和QQ聊天
拨打电话: <a href="tel:手机号">拨打电话</a> 这种方式塞班.安卓与iphone都支持. 参考文章:https://blog.csdn.n ...
- Solidity根据精度来表示浮点数
https://stackoverflow.com/questions/42738640/division-in-ethereum-solidity/42739843 pragma solidity ...
- js中 new Date()使用说明
var myDate = new Date(); // myDate.getYear(); //获取当前年份(2位)(该方法获取年份,涉及到浏览器兼容问题,所以不推荐使用!) // myDate.ge ...
- 洛谷 P3660 [USACO17FEB]Why Did the Cow Cross the Road III G(树状数组)
题目背景 给定长度为2N的序列,1~N各处现过2次,i第一次出现位置记为ai,第二次记为bi,求满足ai<aj<bi<bj的对数 题目描述 The layout of Farmer ...
- HBase 系列(二)安装部署
HBase 系列(二)安装部署 本节以 Hadoop-2.7.6,HBase-1.4.5 为例安装 HBase 环境.HBase 也有三种模式:本地模式.伪分布模式.分布模式. 一.环境准备 (1) ...
- Android targetSdkVersion 原理
前几天 Google 官方发布文章解析 compileSdkVersion.minSdkVersion 以及 targetSdkVersion 的含义,以及合理设置各个值的意义,原文 Picking ...
- 如何把App放在服务器上供用户下载
如何把App放在服务器上供用户下载 有时候做了个简单的App想把App给朋友帮忙测试一下,却发现上传到各种平台很麻烦,肿么办?难道一个个拷贝,那也太low啦,不是咱程序员该干的事儿,好的话不多说,开搞 ...