博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Pandas学习笔记
阅读量:4691 次
发布时间:2019-06-09

本文共 1986 字,大约阅读时间需要 6 分钟。

本学习笔记来自于莫烦Python,原

一、Pandas基本介绍和使用

Series数据结构:索引在左,值在右

import pandas as pdimport numpy as nps = pd.Series([1,3,6,np.nan,44,1])print(s)"""0     1.01     3.02     6.03     NaN4    44.05     1.0dtype: float64"""

DataFrame数据结构:表格型数据结构,包含一组有序的列,每列的值类型可以是不同的。它既有行索引也有列索引,可以看做是Series组成的大字典。

dates = pd.date_range('20160101',periods=6)df = pd.DataFrame(np.random.randn(6,4),index=dates,columns=['a','b','c','d'])
print(df) """ a b c d 2016-01-01 -0.253065 -2.071051 -0.640515 0.613663 2016-01-02 -1.147178 1.532470 0.989255 -0.499761 2016-01-03 1.221656 -2.390171 1.862914 0.778070 2016-01-04 1.473877 -0.046419 0.610046 0.204672 2016-01-05 -1.584752 -0.700592 1.487264 -1.778293 2016-01-06 0.633675 -1.414157 -0.277066 -0.442545 """

DataFrame的三种创建方法

  1. df = pd.DataFrame(np.random.randn(6,4),index=dates,columns=['a','b','c','d'])

     即指定了行与列的标签

  2. df1 = pd.DataFrame(np.arange(12).reshape((3,4))) 不指定行与列的标签,默认为从0开始生成index
  3. 对每一列的数据进行特殊对待
df2 = pd.DataFrame({'A' : 1.,
            'B' : pd.Timestamp('20130102'),                    'C' : pd.Series(1,index=list(range(4)),dtype='float32'),                    'D' : np.array([3] * 4,dtype='int32'),                    'E' : pd.Categorical(["test","train","test","train"]),                    'F' : 'foo'})

其中‘A’,‘B’等为列标签

属性或方法

功能

df.dtypes 查看数据类型
df.index 查看行名称
df.columns 查看列名称
df.values 查看所有df的值
df.describe() 查看count,mean,std,min等数据总结
df.T df的转置
df.sort_index(axis=1,ascending=False) 对数据索引排序输出
df.sort_values(by='column_name') 对数据值排序输出

 二、利用Pandas选择数据

简单筛选

#选择df中列名称为A的元素 df.['A']df.A #选择一到三行的数据 df[0:3]

通过pandas的内置函数筛选

根据标签筛选 loc

#通过标签选择数据,可以选择某几行或某几列#选择行标签为‘20130102’,列标签为‘A’或‘B’的数据 df.loc['20130102',['A','B']]

根据位置筛选 iloc

#选择行位置3-5,列位置1-3的数据df.iloc[3:5,1:3]#选择行位置为1,3,5,列位置为1-3的数据df.iloc[[1,3,5],1:3]

根据标签和位置的混合筛选 ix

#选择行位置为0-3,列名称为'A','C'的数据df.ix[:3,['A','C']]

根据布尔表达式进行筛选

#选出‘A’的值大于8的所有数据df[df.A>8]''' A   B   C   D2013-01-04  12  13  14  152013-01-05  16  17  18  192013-01-06  20  21  22  23'''

 

转载于:https://www.cnblogs.com/AnnaJuly/p/9792276.html

你可能感兴趣的文章
JSON转Model内部实现解析
查看>>
将四个按钮放入一个父控件的好处:方便移动,只需要改变父控件的y值,就可移动四个按钮...
查看>>
Lintcode 553. 炸弹袭击 题解
查看>>
JavaEE的13种核心技术
查看>>
子级Repeater获取 父级Repeater 中的值
查看>>
[tem]高精度1
查看>>
NOIP模拟赛20161016R2
查看>>
BZOJ 3744: Gty的妹子序列 [分块]
查看>>
LeetCode 102. Binary Tree Level Order Traversal
查看>>
LeetCode 206. Reverse Linked List
查看>>
typedef 数组使用详解
查看>>
full gc
查看>>
Cocos2d-x动画播放(序列帧)
查看>>
ABAP术语-V1 Module
查看>>
javaweb学习总结(二十三)——jsp自定义标签开发入门
查看>>
事件冒泡、事件捕获、事件委托
查看>>
【Android】proguard混淆代码
查看>>
KEYCODE_DPAD_CENTER 和 KEYCODE_ENTER
查看>>
python学习笔记(一)
查看>>
#1062 – Duplicate entry ‘1’ for key ‘PRIMARY’
查看>>