3.0:pandas【基础操作】

pandas 是基于numpy构件的强大的数据处理模块,其核心的数据结构有两个:Series 与 DataFrame

一:Series

  Series 是一种类似于表的东西,拥有索引(index)与其对应的值(value)

  1)创建Series:

    Sereies方法接收两个参数,第一个与value相关,第二个用来指定索引。而创建的方式有两种:

    一种为用两个list作为参数分别代表value和index的值[index参数不写则默认0开始自增长]

    另一种为dict作为第一参数,若不写第二参数,则其key变成index,value即是value,若有第二参数,则用第二参数元素作为index.[index对应不上的则被抛弃]

    import pandas as pd

    

 1 obj_1 = pd.Series([1,2,3,4])    #若不指定索引则默认为从零开始的自增长
 2
 3     --->obj_1
 4       0 1
 5       1 2
 6       2 3
 7       3 4
 8       dtype: int64
 9
10     obj_2 = pd.Series([1,2,3,4], index=[‘a‘,‘b‘,‘c‘,‘d‘])  #指定索引
11
12     obj_2
13     --->a 1
14       b 2
15       c 3
16       d 4
17       dtype: int64

创建方法一

 1     sdata = {‘Ohio‘:3500,‘Texas‘:7100,‘Oregon‘:1600,‘Utah‘:500}
 2
 3     obj_3 = pd.Series(sdata)
 4
 5     obj_3
 6     --->Ohio 3500
 7       Oregon 1600
 8       Texas 7100
 9       Utah 500
10       dtype: int64
11
12     
13
14     states = [‘California‘,‘Ohio‘,‘Texas‘]
15
16     obj_4 = pd.Series(sdata,index=states)
17
18     obj_4
19     --->California NaN
20       Ohio 3500
21       Texas 7100                    #由于states列表并没有Oregen与Utah,故无法对应起来
22       dtype: float64

创建方法二

  2) 索引

    obj_1.values     #调出所有元素值
    --->array([1, 2, 3, 4], dtype=int64)

    obj_1.index     #调出索引值
    --->Int64Index([0, 1, 2, 3], dtype=‘int64‘)

    #改变index值

    obj_4.index = [‘bob‘,‘steve‘,‘jeff‘]    #注:若要改变index,数量必须与原本的数量相同,不能少也不能多

    obj_4
  
      bob NaN
      steve 3500
      jeff 7100
      dtype: float64

    obj_2[‘a‘]      #利用索引进行取值
    --->1

    obj_2[[‘c‘,‘b‘,‘a‘]]        #可以用索引一次取多个值,并且按其给定的顺序输出
    --->c 3
      b 2
      a 1
      dtype: int64

    ‘b‘ in obj_2      #检验索引是否存在
    --->True

二:DataFrame

  一种表格型的数据结构,每列可以是不同的数值类型,且它既有行索引,还有列索引,并且他们是平衡的

  1)创建DataFrame

    DataFram(data[,columns = ... , index = ...])

    注:若data为字典型数据,则keys自动变成columns,若data仅是列表类,columns与index都是默认0开始自增长的数

    

 1 data=[[‘ohio‘,‘nevada‘,‘nevada‘],[2000,1000,1000],[1.5,1.7,3.6]]
 2
 3     frame_1 = pd.DataFrame(data)
 4
 5     frame_1
 6     0 1 2
 7       0 ohio nevada nevada
 8       1 2000 1000 1000
 9       2 1.5 1.7 3.6
10
11     frame_2 = pd.DataFrame(data,columns=[‘first‘,‘second‘,‘third‘])
12
13     frame_2
14      first    second   third                   #注意此处结果与使用字典时比较,这里一个list定义了一行,而字典的是一列
15     0 ohio   nevada  nevada
16     1 2000 1000    1000
17     2 1.5    1.7       3.6    
18
19     frame_2 = pd.DataFrame(data,columns=[‘first‘,‘second‘,‘third‘],index=[‘one‘,‘two‘,‘three‘])
20
21     frame_2
22          first     second    third
23     one   ohio    nevada   nevada
24     two   2000  1000      1000
25     three 1.5     1.7         3.6

创建方法一

 1             data2 = {‘states‘:[‘ohio‘,‘nevada‘,‘nevada‘],‘year‘:[2000,1000,1000],‘pop‘:[1.5,1.7,3.6]}
 2
 3     frame_4=pd.DataFrame(data2)
 4
 5     frame_4
 6       pop states year
 7     0 1.5 ohio 2000
 8     1 1.7 nevada 1000
 9     2 3.6 nevada 1000
10
11     frame_5=pd.DataFrame(data2,index=[‘one‘,‘two‘,‘three‘])
12
13     frame_5
14       pop states year
15     one 1.5 ohio 2000
16     two 1.7 nevada 1000
17     three 3.6 nevada 1000
18
19             

创建方法二

  2)索引

    同Series一样可以通过values与index属性查看这两个值

 1 In [62]: frame_4
 2 Out[62]:
 3    pop     states      year
 4 0  1.2       ohio      2000
 5 1  2.1  new state  new year
 6 2  3.6     nevada      1000
 7
 8 In [63]: frame_4.index
 9 Out[63]: Int64Index([0, 1, 2], dtype=‘int64‘)
10
11 In [64]: frame_4.index.name
12
13 In [65]: frame_4.index
14 Out[65]: Int64Index([0, 1, 2], dtype=‘int64‘)
15
16 In [66]: frame_4.values
17 Out[66]:
18 array([[1.2, ‘ohio‘, 2000L],
19        [2.1, ‘new state‘, ‘new year‘],
20        [3.6, ‘nevada‘, 1000L]], dtype=object)

index/values属性

    通过对column的索引可以获取以Series的形式返回一列

 1 In [38]: frame_4
 2 Out[38]:
 3    pop  states  year
 4 0  1.5    ohio  2000
 5 1  1.7  nevada  1000
 6 2  3.6  nevada  1000
 7
 8 In [39]: frame_4[‘pop‘]
 9 Out[39]:
10 0    1.5
11 1    1.7
12 2    3.6
13 Name: pop, dtype: float64

    通过索引字段ix可以以Series形式返回一行的内容

1 In [40]: frame_4.ix[1]
2 Out[40]:
3 pop          1.7
4 states    nevada
5 year        1000
6 Name: 1, dtype: object

  3)赋值

    列赋值

1 In [41]: frame_4[‘pop‘]=2.0
2
3 In [42]: frame_4
4 Out[42]:
5    pop  states  year
6 0    2    ohio  2000
7 1    2  nevada  1000
8 2    2  nevada  1000

    行赋值

1 In [44]: frame_4
2 Out[44]:
3      pop  states   year
4 0      2    ohio   2000
5 1  hello   hello  hello
6 2      2  nevada   1000

    通过Series进行赋值

 1 In [45]: val = pd.Series([1.2,2.0,3.6],index=[0,1,2])
 2
 3 In [46]: frame_4[‘pop‘]=val
 4
 5 In [47]: frame_4
 6 Out[47]:
 7    pop  states   year
 8 0  1.2    ohio   2000
 9 1  2.0   hello  hello
10 2  3.6  nevada   1000
 1 In [48]: val_2 = pd.Series([2.1,‘new state‘,‘new year‘],index=[‘pop‘,‘states‘,‘y
 2 ear‘])
 3 In [49]: frame_4.ix[1]=val_2
 4
 5 In [50]: frame_4
 6 Out[50]:
 7    pop     states      year
 8 0  1.2       ohio      2000
 9 1  2.1  new state  new year
10 2  3.6     nevada      1000

    增与删

 1 In [52]: frame_4[‘stars‘]=[‘one‘,‘two‘,‘five‘]     #没有则直接新建
 2
 3 In [53]: frame_4
 4 Out[53]:
 5    pop     states      year stars
 6 0  1.2       ohio      2000   one
 7 1  2.1  new state  new year   two
 8 2  3.6     nevada      1000  five
 9
10 In [54]: del frame_4[‘stars‘]
11
12 In [55]: frame_4
13 Out[55]:
14    pop     states      year
15 0  1.2       ohio      2000
16 1  2.1  new state  new year
17 2  3.6     nevada      1000

  4)转置:.T          [只是返回一个转置的副本,本身并不转置]

 1 In [56]: frame_4
 2 Out[56]:
 3    pop     states      year
 4 0  1.2       ohio      2000
 5 1  2.1  new state  new year
 6 2  3.6     nevada      1000
 7
 8 In [57]: frame_4.T
 9 Out[57]:
10            0          1       2
11 pop      1.2        2.1     3.6
12 states  ohio  new state  nevada
13 year    2000   new year    1000

.T

时间: 2024-08-04 23:02:40

3.0:pandas【基础操作】的相关文章

pandas 基础操作 更新

创建一个Series,同时让pandas自动生成索引列 创建一个DataFrame数据框 查看数据 数据的简单统计 数据的排序 选择数据(类似于数据库中sql语句) 另外可以使用标签来选择 通过位置获取数据 布尔值索引 设定数值(类似于sql update 或者add) 缺失值处理 数据操作 统计个数与离散化 pandas 处理字符串(单独一个大的章节,这人不做详述) 数据合并 首先看concat合并数据框 merge方式合并(数据库中的join) Append方式合并数据 分组操作Groupb

pandas基础操作

import pandas as pd 1.定义一个字典 data = {'sales_volume': [100, 123, 446, 233, 456], 'month': ['1月', '2月', '3月', '4月', '5月'] , 'product_id': ['1112', '1113', '1114','1115','1116'], 'color':['red', 'red', 'black', 'green', 'black']} 2.将字典放入dataframe数据结构,自动

Axure8.0入门级基础操作

前言:笔者最近刚刚戒掉了游戏(以前,我可是通宵达旦,曾经游戏里面有个统计:3个月在线玩1200多小时).然后现在干点啥呢,于是,宅男就下载了一个Axure8.0.从来没有用过,那就从最基础的了解一下呗.1.添加元件,选择元件设置样式(右侧对话框中)略!!!!!2.按住ctrl键,用鼠标点选元件,可以任意旋转3.点元件上的黑圆圈,可以改变图形. 4.选择文字,在属性中可以设置相当于href的东西5.选择文本框,属性中可以选择该文本框的类型.设置提示字符与最大输入限制6.可以设置文本框的回车事件文本

《Pandas CookBook》---- DataFrame基础操作

Pandas基础操作 简书大神SeanCheney的译作,我作了些格式调整和文章目录结构的变化,更适合自己阅读,以后翻阅是更加方便自己查找吧 import pandas as pd import numpy as np 设定最大列数和最大行数 pd.set_option('max_columns',5 , 'max_rows', 5) 选取多个DataFrame列 用列表选取多个列 movie = pd.read_csv('data/movie.csv') cols =['actor_1_nam

基于 Python 和 Pandas 的数据分析(2) --- Pandas 基础

在这个用 Python 和 Pandas 实现数据分析的教程中, 我们将明确一些 Pandas 基础知识. 加载到 Pandas Dataframe 的数据形式可以很多, 但是通常需要能形成行和列的数据集. 所以可以是如下的 dictionary 的形式: web_stats = {'Day':[1,2,3,4,5,6], 'Visitors':[43,34,65,56,29,76], 'Bounce Rate':[65,67,78,65,45,52]} 我们可以通过如下方式把这个 dictio

【转】Python——DataFrame基础操作

Python——DataFrame基础操作 DataFrame理解 DataFrame可以看做是有序排列的若干Series对象,这里的“排列”是指这些Series都有共同的索引. 一.读取文件 dt = pd.read_csv(path) dt = pd.read_excel(path) dt = pd.read_table(path, sep=',') 二.索引 第一类索引是iloc属性,表示取值和切片都是显式的,dt.iloc[1:3] #注:从0开始的左闭右开区间 第二类索引是loc属性,

Mysql安装和基础操作

1.环境检查: 先检查是否已经安装了:rpm -qa |grep mysql ---两个都检查下,查看mysql是否安装 rpm -qa |grep MySQL若安装有可删除:rpm -e ****** 2.安装:1)安装前准备:mkdir usr/mysql cd进入该目录,上传安装包到/usr/mysql目录下2)安装:rpm -ivh MySQL-server-5.0.16-0.i386.rpm rpm -ivh MySQL-elient-5.0.16-0.i386.rpm3)验证安装是否

双向链表的基础操作(C++实现)

★C++实现双向链表的基础操作(类的实现) #include<iostream> #include<cassert> using namespace std; typedef int DataType; class double_link_list {                        //定义双向链表类,包括了双向的前驱和后继指针,以及对象的初始化 public: friend class ListNode; double_link_list(DataType x =

数据结构-线性表的一些基础操作 c++代码

//线性表的顺序存储结构 template <class T> class Linearlist { public: Linearlist(int MaxListSize == 10); ~Linearlist() { delete []element; } bool IsEmpty() const { return length == 0; } bool IsFull() const { return length == MaxSize; } int Length() const { ret

Docker 之 Docker基础操作

第1章 Docker基础操作 1.1 常用的命令 0) 安装Docker 环境 yum -y install docker 1)   指定 IP,DNS 网络位启动Docker容器 a)  docker -bip 192.168.6.233/28-dns 8.8.8.8 -g /data/docker/  -d 2)   在线pull image 镜像到本地 a)     Docker pull centos 3)   启动容器 a)     Docker run –i –t centos/bi