python学习笔记(四):pandas基础

pandas 基础

serise

import pandas as pd
from pandas import Series, DataFrame
obj = Series([4, -7, 5, 3])
obj
0    4
1   -7
2    5
3    3
dtype: int64
obj.values
array([ 4, -7,  5,  3], dtype=int64)
obj.index
RangeIndex(start=0, stop=4, step=1)
obj[[1,3]]
# 跳着选取数据
1   -7
3    3
dtype: int64
obj[1:3]
1   -7
2    5
dtype: int64
pd.isnull(obj)
0    False
1    False
2    False
3    False
dtype: bool
  • reindex可以用来插值
obj.reindex(range(5), method = 'ffill')
0    4
1   -7
2    5
3    3
4    3
dtype: int64
  • 标签切片是闭区间的

dataframe

data = {'state': ['asd','qwe','sdf','ert'],
       'year': [2000, 2001, 2002, 2003],
       'pop': [1.5,1.7,3.6,2.4]}
data = DataFrame(data)
data

.dataframe thead tr:only-child th { text-align: right; } .dataframe thead th { text-align: left; } .dataframe tbody tr th { vertical-align: top; }

pop state year
0 1.5 asd 2000
1 1.7 qwe 2001
2 3.6 sdf 2002
3 2.4 ert 2003
data.year
# 比r里提取列要方便点
0    2000
1    2001
2    2002
3    2003
Name: year, dtype: int64
data['debt'] = range(4)
data

.dataframe thead tr:only-child th { text-align: right; } .dataframe thead th { text-align: left; } .dataframe tbody tr th { vertical-align: top; }

pop state year debt
0 1.5 asd 2000 0
1 1.7 qwe 2001 1
2 3.6 sdf 2002 2
3 2.4 ert 2003 3
  • index是不能修改的
a = data.index
a[1] = 6
---------------------------------------------------------------------------

TypeError                                 Traceback (most recent call last)

<ipython-input-9-57677294f950> in <module>()
      1 a = data.index
----> 2 a[1] = 6

F:\Anaconda\lib\site-packages\pandas\core\indexes\base.py in __setitem__(self, key, value)
   1668
   1669     def __setitem__(self, key, value):
-> 1670         raise TypeError("Index does not support mutable operations")
   1671
   1672     def __getitem__(self, key):

TypeError: Index does not support mutable operations
data.columns
Index(['pop', 'state', 'year', 'debt'], dtype='object')
  • .ix标签索引功能,输入行和列
  • 不加.ix只能选取其中的某列或某行,不能列与行同时选取
data[:3]

.dataframe thead tr:only-child th { text-align: right; } .dataframe thead th { text-align: left; } .dataframe tbody tr th { vertical-align: top; }

pop state year debt
0 1.5 asd 2000 0
1 1.7 qwe 2001 1
2 3.6 sdf 2002 2
data.ix[:,:3]

.dataframe thead tr:only-child th { text-align: right; } .dataframe thead th { text-align: left; } .dataframe tbody tr th { vertical-align: top; }

pop state year
0 1.5 asd 2000
1 1.7 qwe 2001
2 3.6 sdf 2002
3 2.4 ert 2003
  • 删除某列用drop,axis = 0表示行,1表示列
  • 删除后原数据不变
data.drop(0,axis=0)

.dataframe thead tr:only-child th { text-align: right; } .dataframe thead th { text-align: left; } .dataframe tbody tr th { vertical-align: top; }

pop state year debt
1 1.7 qwe 2001 1
2 3.6 sdf 2002 2
3 2.4 ert 2003 3
data.drop('year', axis=1)

.dataframe thead tr:only-child th { text-align: right; } .dataframe thead th { text-align: left; } .dataframe tbody tr th { vertical-align: top; }

pop state debt
0 1.5 asd 0
1 1.7 qwe 1
2 3.6 sdf 2
3 2.4 ert 3
data

.dataframe thead tr:only-child th { text-align: right; } .dataframe thead th { text-align: left; } .dataframe tbody tr th { vertical-align: top; }

pop state year debt
0 1.5 asd 2000 0
1 1.7 qwe 2001 1
2 3.6 sdf 2002 2
3 2.4 ert 2003 3
import numpy as np
df = DataFrame(np.arange(9).reshape(3, 3))
df

.dataframe thead tr:only-child th { text-align: right; } .dataframe thead th { text-align: left; } .dataframe tbody tr th { vertical-align: top; }

0 1 2
0 0 1 2
1 3 4 5
2 6 7 8
  • applymap()可以对dataframe每一个元素运用函数
  • apply()可以对每一维数组运用函数
df.applymap(lambda x: '%.2f' % x)

.dataframe thead tr:only-child th { text-align: right; } .dataframe thead th { text-align: left; } .dataframe tbody tr th { vertical-align: top; }

0 1 2
0 0.00 1.00 2.00
1 3.00 4.00 5.00
2 6.00 7.00 8.00
data.sort_values(by='pop')
# 对某一列排序

.dataframe thead tr:only-child th { text-align: right; } .dataframe thead th { text-align: left; } .dataframe tbody tr th { vertical-align: top; }

pop state year debt
0 1.5 asd 2000 0
1 1.7 qwe 2001 1
3 2.4 ert 2003 3
2 3.6 sdf 2002 2
data.describe()

.dataframe thead tr:only-child th { text-align: right; } .dataframe thead th { text-align: left; } .dataframe tbody tr th { vertical-align: top; }

pop year debt
count 4.000000 4.000000 4.000000
mean 2.300000 2001.500000 1.500000
std 0.948683 1.290994 1.290994
min 1.500000 2000.000000 0.000000
25% 1.650000 2000.750000 0.750000
50% 2.050000 2001.500000 1.500000
75% 2.700000 2002.250000 2.250000
max 3.600000 2003.000000 3.000000
df.isin([1])

.dataframe thead tr:only-child th { text-align: right; } .dataframe thead th { text-align: left; } .dataframe tbody tr th { vertical-align: top; }

0 1 2
0 False True False
1 False False False
2 False False False
  • None、NaN会被当作NA处理
  • df.shape不加括号相当于dim()
df.shape
(3, 3)
  • dropna删除缺失值
df.ix[:1, :1] = None
df

.dataframe thead tr:only-child th { text-align: right; } .dataframe thead th { text-align: left; } .dataframe tbody tr th { vertical-align: top; }

0 1 2
0 NaN NaN 2
1 NaN NaN 5
2 6.0 7.0 8
  • 填充缺失值可以调用字典,不同行添加不同值
df.fillna({0:11, 1:22})

.dataframe thead tr:only-child th { text-align: right; } .dataframe thead th { text-align: left; } .dataframe tbody tr th { vertical-align: top; }

0 1 2
0 11.0 22.0 2
1 11.0 22.0 5
2 6.0 7.0 8
df

.dataframe thead tr:only-child th { text-align: right; } .dataframe thead th { text-align: left; } .dataframe tbody tr th { vertical-align: top; }

0 1 2
0 NaN NaN 2
1 NaN NaN 5
2 6.0 7.0 8
df.fillna({0:11, 1:22}, inplace=True)

.dataframe thead tr:only-child th { text-align: right; } .dataframe thead th { text-align: left; } .dataframe tbody tr th { vertical-align: top; }

0 1 2
0 11.0 22.0 2
1 11.0 22.0 5
2 6.0 7.0 8
df

.dataframe thead tr:only-child th { text-align: right; } .dataframe thead th { text-align: left; } .dataframe tbody tr th { vertical-align: top; }

0 1 2
0 11.0 22.0 2
1 11.0 22.0 5
2 6.0 7.0 8
  • inplace修改对象不产生副本

原文地址:https://www.cnblogs.com/xihehe/p/9026860.html

时间: 2024-11-05 23:21:29

python学习笔记(四):pandas基础的相关文章

Day3: Python学习笔记之计算机基础——网络片

Day3: Python学习笔记之计算机基础--网络片 什么是互联网协议以及为何要有互联网协议? ?互联网协议本质上是为了方便连接两台计算机而指定的一系列统一的标准. osi五层模型 计算机之间要实现数据传输必须要经过以下五层协议: ? 模型 ,协议 ,硬件 ? 应用层, http协议.用户自定义协议 ? 传输层, TCP/UPD协议 ,四层交换机.四层路由器 ? 网络层, IP协议, 三层交换机.路由器 ? 数据链路层, 以太网.电信号分组, 网桥.以太网交换机.网卡 ? 物理层, 传递电信号

Python学习笔记day1【基础介绍】

Alex博客:http://www.cnblogs.com/alex3714/articles/5465198.html 一.本节主要内容 Python介绍 发展史 Python 2 or 3? 安装 Hello World程序 变量 用户输入 模块初识 .pyc文件 数据类型初识 数据运算 表达式if ...else语句 表达式for 循环 break and continue 表达式while 循环 作业需求 二.具体内容 1.python介绍 python的创始人为吉多·范罗苏姆(Guid

Python 学习笔记 - 面向对象(基础)

之前学习的编程方式都是通过面向过程来实现的,对于一些重用的代码,进一步的使用了函数,增强了代码的可读性和重用性.Python同时还支持面向对象的编程. 面向对象有三大特性: 封装 继承 多态 首先来看看封装.封装包括两点,把内容封装到某个地方:调用封装的内容 例1: class c1:     def __init__(self,name,obj):         self.name = name         self.obj = obj class c2:     def __init_

Java基础学习笔记四 Java基础语法

数组 数组的需求 现在需要统计某公司员工的工资情况,例如计算平均工资.最高工资等.假设该公司有50名员工,用前面所学的知识完成,那么程序首先需要声明50个变量来分别记住每位员工的工资,这样做会显得很麻烦. 数组的概述 数组是指一组数据的集合,数组中的每个数据被称作元素.在数组中可以存放任意类型的元素,但同一个数组里存放的元素类型必须一致. 数组的定义 格式: 数据类型[] 数组名 = new 数据类型[元素个数或数组长度]; 举例:int[] x = new int[100]; 要点说明 数据类

python学习笔记3:基础(元组、字符串、列表、字典)

参考文档:http://www.cnblogs.com/liu-yao/p/5145876.html 一,对象与类 对象: python中一切皆为对象,所谓对象:我自己就是一个对象,我玩的电脑就是对象,玩的手机就是对象. 我们通过描述属性(特征)和行为来描述一个对象的. 在python中,一个对象的特征也称为属性(attribute).它所具有的行为也称为方法(method) 结论:对象=属性+方法 在python中,把具有相同属性和方法的对象归为一个类(class) 比如人类,动物,植物等等,

Python学习笔记(四)

一.list创建 list 是Python语言中一种内置的数据类型 list 中可以存放不同类型的数据 list = []  #创建一个空列表 list = [1,2,3] #创建一个非空列表,并初始化其元素为1,2,3 二.list长度 使用 len(list_变量) 可以测得list的长度 三.list切片 list = [1,2,3,4,5,6,7,8,9,10] print(list[3:])  #4,5,6,7,8,9,10 print(list[3:5]) #4,5 print(li

[Python学习] 专题四.文件基础知识

        前面讲述了函数.语句和字符串的基础知识,该篇文章主要讲述文件的基础知识(与其他语言非常类似). 一. 文件的基本操作         文件是指存储在外部介质(如磁盘)上数据的集合.文件的操作流程为: 打开文件(读方式\写方式)->读写文件(read\readline\readlines\write\writelines)->关闭文件 1.打开文件 调用函数open打开文件,其函数格式为: file_obj=open(filename[, mode[, buffering]])

python学习笔记(四):函数

一.函数是什么? 函数一词来源于数学,但编程中的「函数」概念,与数学中的函数是有很大不同的,编程中的函数在英文中也有很多不同的叫法.在BASIC中叫做subroutine(子过程或子程序),在Pascal中叫做procedure(过程)和function,在C中只有function,在Java里面叫做method. 定义: 函数是指将一组语句的集合通过一个名字(函数名)封装起来,要想执行这个函数,只需调用其函数名即可. 二.使用函数的好处: 1.简化代码2.提高代码的复用性3.代码可扩展 三.p

Python学习笔记之语言基础与流程控制

Python简介 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC语言的一种继承. Python的特点 Python 优点 1.简单.优雅.明确 2.强大的模块第三方库 3.易移植 4.纯面向对象语言 5.可扩展性良好(c\java\c#...) Python缺点 1.代码不能加密 2.执行速度慢 Python能做什么 1.软件开发 1.游戏后台.搜索.图形界面 2.

Python学习笔记四(迭代器、生成器、内置函数)

一.迭代器 1.迭代器定义 迭代是一个重复的过程,每次重复一次迭代,并且每次迭代的结果都是下一次迭代的初始值. l = ["aaa","bbb","ccc"] count = 0 while count< len(l): #每次重复完成后count都是下一次的初始值 print(l[count]) count+=1 需要迭代器的原因:对于序列类型str.list.tuple可以依赖索引迭代取值,对于dict.set.文件需要提供不依赖索引取