pandas自学笔记01

@pandas

一、基本介绍

1.安装pandas

pip install pandas

2.numpy与pandas

numpy

  • 序列化的矩阵或者序列
  • 列表(得到矩阵的行列信息)

pandas

  • 字典型的numpy
  • 字典(因为可以给不同的行和列命名)

3.基本操作

(1) 导入模块

一般情况下numpy与pandas 都是搭配使用的

import pandas as pd
import numpy as np

(2) 创建pandas的序列pd.Series

创建一组带行索引的数据

pd.Series([1,3,5,np.nan,6,2]) #np.nan 表示空值

结果:
在这里插入图片描述

(3) DataFrame创建

  • 准备工作:时间行索引(不给则为默认的0,1,2,…)
pd.date_range('20200202',periods=8) # 得到从20200202开始的periods个日期

结果:
在这里插入图片描述

  • 定义了行和列的DataFrame
pd.DataFrame(np.random.randn(8,4),index=dates,columns=["a","b","c","d"])

结果:
在这里插入图片描述

  • 未定义行和列的DataFrame
pd.DataFrame(np.arange(12).reshape((3,4)))

结果:
在这里插入图片描述

  • 用字典的方法创建DataFrame(其中键为列名,值为DataFrame的值)
pd.DataFrame({"A":1.,
                   "B":pd.Timestamp("20200202"),
                   "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":"qh"})

结果:
在这里插入图片描述

(4) 判断数据类型

df = pd.DataFrame({"A":1.,
                   "B":pd.Timestamp("20200202"),
                   "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":"qh"})
df.dtypes #返回每一列的数据类型

结果:
在这里插入图片描述

(5) 取值

① 取行索引

df.index  # 取行索引

结果:
Int64Index([0, 1, 2, 3], dtype=‘int64’)

② 取列索引

df.columns # 取列索引

结果:
Index([‘A’, ‘B’, ‘C’, ‘D’, ‘E’, ‘F’], dtype=‘object’)

③ 取值

df.values # 取每一行的值

结果:
在这里插入图片描述

(6) 描述DataFrame—df.describe()

对DataFrame中所有的数值型类型的数据算其数量、均值、方差、最大值、最小值等基本信息

df.describe() # 对DataFrame中所有的数值型类型的数据算其数量、均值、方差、最大值、最小值等基本信息

结果:
在这里插入图片描述

(7) 取转置

df.T

结果:
在这里插入图片描述

(8) 排序

① 按列名排序

df.sort_index(axis=1,ascending=False)

结果:
在这里插入图片描述

② 按行名排序

df.sort_index(axis=0,ascending=False)

结果:
在这里插入图片描述

③ 按某列的值排序

df.sort_values(by="E")

结果:
在这里插入图片描述

二、选择数据

1.创建一个DataFrame

import pandas as pd
import numpy as np
dates = pd.date_range("20200202",periods=6)
print(dates)
df = pd.DataFrame(np.arange(24).reshape((6,4)),index=dates,columns=["A","B","C","D"])
df

结果:
在这里插入图片描述

2.按列名选择数据

# 此两者等效
df["A"]
df.A 

结果:
在这里插入图片描述

3.按行名选择数据

(1)按行索引切片

df[0:3]

结果:
在这里插入图片描述
(2)按行名切片

df["20200202":"20200204"]

结果:
在这里插入图片描述

4.根据标签label:.loc选择数据

  • 按行标签
df.loc["20200202"]

结果:
在这里插入图片描述

  • 按列标签
df.loc[:,["A","C"]]

结果:
在这里插入图片描述

  • 行和列标签
df.loc["20200202",["A","C"]]

结果:
在这里插入图片描述

5.根据位置position:.iloc选择数据

df.iloc[3]  #取第3行

结果:
在这里插入图片描述

df.iloc[3,1] #取第3行的第1列

结果:
在这里插入图片描述

df.iloc[3:5,1:3] # 取第3-5行的第1-3列

结果:
在这里插入图片描述

df.iloc[[1,3,5],1:3] # 取第1,3,5行的1-3列

结果:
在这里插入图片描述

6.根据标签和位置选择数据.ix

df.ix[:3,["A","C"]]

结果:
在这里插入图片描述

注意:1

  1. 使用 .loc 从索引中选择适当的索引,然后使用标签索引
df.loc[df.index[[0,3]],["A","C"]]

结果:
在这里插入图片描述

  1. .iloc,显式地获取索引器上的位置,并使用位置索引来选择事物
df.iloc[[0,2],df.columns.get_loc("A")]

结果:
在这里插入图片描述

  1. 为了得到倍数索引器,使用 .get_indexer
df.iloc[[0,2],df.columns.get_indexer(["A","C"])]

结果:
在这里插入图片描述

7.bool类型选择数据

df[df.A>8]

结果:
在这里插入图片描述


  1. pandas从0.20.0版本开始,一般不支持 .ix索引器,提倡使用 .iloc.loc索引器。更多详细内容见一下链接:http://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#ix-indexer-is-deprecated ↩︎

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值