内容学习自:

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

    一:定义

  

DataFrame是一个表格型的数据结构,它含有一组有序的列,每列可以是不同的值类型(数值、字符串、布尔值等)。DataFrame既有行索引也有列索引,它可以被看做由Series组成的字典(共用同一个索引)。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
           2.1 head() #只获取前5行
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 学习数据分析 (学习四)的更多相关文章

  1. "利用python进行数据分析"学习记录01

    "利用python进行数据分析"学习记录 --day01 08/02 与书相关的资料在 http://github.com/wesm/pydata-book pandas 的2名字 ...

  2. Python: 利用Python进行数据分析 学习记录

    -----15:18 2016/10/14----- 1. import numpy as np;import pandas as pd values = pd.Series(np.random.no ...

  3. 利用python进行数据分析——(一)库的学习

    总结一下自己对python常用包:Numpy,Pandas,Matplotlib,Scipy,Scikit-learn 一. Numpy: 标准安装的Python中用列表(list)保存一组值,可以用 ...

  4. PYTHON学习(三)之利用python进行数据分析(1)---准备工作

    学习一门语言就是不断实践,python是目前用于数据分析最流行的语言,我最近买了本书<利用python进行数据分析>(Wes McKinney著),还去图书馆借了本<Python数据 ...

  5. $《利用Python进行数据分析》学习笔记系列——IPython

    本文主要介绍IPython这样一个交互工具的基本用法. 1. 简介 IPython是<利用Python进行数据分析>一书中主要用到的Python开发环境,简单来说是对原生python交互环 ...

  6. 《利用Python进行数据分析·第2版》第四章 Numpy基础:数组和矢量计算

    <利用Python进行数据分析·第2版>第四章 Numpy基础:数组和矢量计算 numpy高效处理大数组的数据原因: numpy是在一个连续的内存块中存储数据,独立于其他python内置对 ...

  7. 利用python进行数据分析--(阅读笔记一)

    以此记录阅读和学习<利用Python进行数据分析>这本书中的觉得重要的点! 第一章:准备工作 1.一组新闻文章可以被处理为一张词频表,这张词频表可以用于情感分析. 2.大多数软件是由两部分 ...

  8. 利用Python进行数据分析_Pandas_基本功能

    申明:本系列文章是自己在学习<利用Python进行数据分析>这本书的过程中,为了方便后期自己巩固知识而整理. 第一 重新索引 Series的reindex方法 In [15]: obj = ...

  9. 利用Python进行数据分析 第4章 IPython的安装与使用简述

    本篇开始,结合前面所学的Python基础,开始进行实战学习.学习书目为<利用Python进行数据分析>韦斯-麦金尼 著. 之前跳过本书的前述基础部分(因为跟之前所学的<Python基 ...

  10. 利用Python进行数据分析(第二版)电子版书籍分享

    资料下载地址: 链接:https://pan.baidu.com/s/1y1C0bJPkSn7Sv6Eq9G5_Ug 提取码:vscu <利用Python进行数据分析(第二版)>高清中文版 ...

随机推荐

  1. 74. Search a 2D Matrix (Graph; Divide-and-Conquer)

    Write an efficient algorithm that searches for a value in an m x n matrix. This matrix has the follo ...

  2. Codeforces Beta Round #9 (Div. 2 Only) D. How many trees? dp

    D. How many trees? 题目连接: http://www.codeforces.com/contest/9/problem/D Description In one very old t ...

  3. Linux汇编与C互相调用

    一.简介 C语言调用汇编有两种方式:1.通过内嵌汇编  2.通过编译链接. 二.基础知识 对于C和汇编语言的接口主要有两个问题需要解决 1.调用者与被调用者的参数传递 正常的,定义一个函数总是希望它完 ...

  4. 全球数据库-->基金/管理产品-->分类/行业平均-->开放式分类

    SecID 招募书中所定净费率 换手率% 回报日期(每日) 计价货币 回报-本月以来(每日)计价货币 回报-本季以来(每日)计价货币 回报-本年以来(每日)计价货币 回报-1日(每日)计价货币 回报- ...

  5. Java 设计模式系列(十五)观察者模式(Observer)

    Java 设计模式系列(十五)观察者模式(Observer) Java 设计模式系列目录(https://www.cnblogs.com/binarylei/p/10198698.html) Java ...

  6. Swoole2.0协程客户端连接池的实现

    Swoole2.0官方默认的实例是短连接的,在请求处理完毕后就会切断redis或mysql的连接.实际项目可以使用连接池实现复用. 实现原理也很简单,使用SplQueue,在请求到来时判断资源队列中是 ...

  7. 书籍索引 #C++

    卷 计算机 的文件夹 PATH 列表卷序列号为 00000200 0001:8890F:.│ 21天学通C++.pdf│ C++ Primer Plus 第6版 中文版.pdf│ C++ Templa ...

  8. Google Tango Java SDK开发:Motion Tracking 运动追踪

    Java API Motion Tracking Tutorial运动追踪教程 This page describes how the Java API handles motion tracking ...

  9. Grails入门系列(一)

    Grails入门系列(一) JAVAweb开发技术相对于php,python,note.js等新式技术更为复杂,向来以繁杂的配置著称,但是Java任然被广泛的应用于大型企业级的项目,主要是因为技术成熟 ...

  10. HDU1412:{A} + {B}

    Problem Description 给你两个集合,要求{A} + {B}. 注:同一个集合中不会有两个相同的元素.   Input 每组输入数据分为三行,第一行有两个数字n,m(0<n,m& ...