pandas-索引
一、按列取、按索引/行取、按特定行取
import numpy as np
from pandas import DataFrame
import pandas as pd df=DataFrame(np.arange(12).reshape((3,4)),index=['one','two','thr'],columns=list('abcd')) df['a']#取a列
df[['a','b']]#取a、b列 #ix可以用数字索引,也可以用index和column索引
df.ix[0]#取第0行
df.ix[0:1]#取第0行
df.ix['one':'two']#取one、two行
df.ix[0:2,0]#取第0、1行,第0列
df.ix[0:1,'a']#取第0行,a列
df.ix[0:2,'a':'c']#取第0、1行,abc列
df.ix['one':'two','a':'c']#取one、two行,abc列
df.ix[0:2,0:1]#取第0、1行,第0列
df.ix[0:2,0:2]#取第0、1行,第0、1列 #loc只能通过index和columns来取,不能用数字
df.loc['one','a']#one行,a列
df.loc['one':'two','a']#one到two行,a列
df.loc['one':'two','a':'c']#one到two行,a到c列
df.loc['one':'two',['a','c']]#one到two行,ac列 #iloc只能用数字索引,不能用索引名
df.iloc[0:2]#前2行
df.iloc[0]#第0行
df.iloc[0:2,0:2]#0、1行,0、1列
df.iloc[[0,2],[1,2,3]]#第0、2行,1、2、3列 #iat取某个单值,只能数字索引
df.iat[1,1]#第1行,1列
#at取某个单值,只能index和columns索引
df.at['one','a']#one行,a列
二、按条件取行
#选取等于某些值的行记录 用 ==
df.loc[df[‘column_name’] == some_value] #选取某列是否是某一类型的数值 用 isin
df.loc[df[‘column_name’].isin(some_values)] #多种条件的选取 用 &
df.loc[(df[‘column’] == some_value) & df[‘other_column’].isin(some_values)] #选取不等于某些值的行记录 用 !=
df.loc[df[‘column_name’] != some_value] #isin返回一系列的数值,如果要选择不符合这个条件的数值使用~
df.loc[~df[‘column_name’].isin(some_values)]
三、查看、检查数据
#查看DataFrame对象的前n行
df.head(n) #查看DataFrame对象的最后n行
df.tail(n) #查看行数和列数
df.shape() #查看索引、数据类型和内存信息
df.info() #查看数值型列的汇总统计
df.describe() #查看Series对象的唯一值和计数
s.value_counts(dropna=False) #查看DataFrame对象中每一列的唯一值和计数
df.apply(pd.Series.value_counts)
四、数据清理
#重命名列名
df.columns = ['a','b','c'] #检查DataFrame对象中的空值,并返回一个Boolean数组
pd.isnull() #检查DataFrame对象中的非空值,并返回一个Boolean数组
pd.notnull() #删除所有包含空值的行
df.dropna() #删除所有包含空值的列
df.dropna(axis=1) #删除所有小于n个非空值的行
df.dropna(axis=1,thresh=n) #用x替换DataFrame对象中所有的空值
df.fillna(x) #将Series中的数据类型更改为float类型
s.astype(float) #用‘one’代替所有等于1的值
s.replace(1,'one') #用'one'代替1,用'three'代替3
s.replace([1,3],['one','three']) #批量更改列名
df.rename(columns=lambda x: x + 1) #选择性更改列名
df.rename(columns={'old_name': 'new_ name'}) #更改索引列
df.set_index('column_one') #批量重命名索引
df.rename(index=lambda x: x + 1)
五、数据处理:Filter、Sort和GroupBy
#选择col列的值大于0.5的行
df[df[col] > 0.5] #按照列col1排序数据,默认升序排列
df.sort_values(col1) #按照列col1降序排列数据
df.sort_values(col2, ascending=False) #先按列col1升序排列,后按col2降序排列数据
df.sort_values([col1,col2], ascending=[True,False]) #返回一个按列col进行分组的Groupby对象
df.groupby(col) #返回一个按多列进行分组的Groupby对象
df.groupby([col1,col2]) #返回按列col1进行分组后,列col2的均值
df.groupby(col1)[col2] #创建一个按列col1进行分组,并计算col2和col3的最大值的数据透视表
df.pivot_table(index=col1, values=[col2,col3], aggfunc=max) #返回按列col1分组的所有列的均值
df.groupby(col1).agg(np.mean) #对DataFrame中的每一列应用函数np.mean
data.apply(np.mean) #对DataFrame中的每一行应用函数np.max
data.apply(np.max,axis=1)
六、数据合并
#将df2中的行添加到df1的尾部
df1.append(df2) #将df2中的列添加到df1的尾部
df.concat([df1, df2],axis=1) #对df1的列和df2的列执行SQL形式的join
df1.join(df2,on=col1,how='inner')
七、数据统计
#查看数据值列的汇总统计
df.describe() #返回所有列的均值
df.mean() #返回列与列之间的相关系数
df.corr() #返回每一列中的非空值的个数
df.count() #返回每一列的最大值
df.max() #返回每一列的最小值
df.min() #返回每一列的中位数
df.median() #返回每一列的标准差
df.std()
pandas-索引的更多相关文章
- pandas 索引与列相互转化
1. 准备数据 import pandas as pd from io import StringIO csv_txt = '''"date","player1" ...
- Pandas索引和选择数据
在本章中,我们将讨论如何切割和丢弃日期,并获取Pandas中大对象的子集. Python和NumPy索引运算符"[]"和属性运算符".". 可以在广泛的用例中快 ...
- pandas索引操作
Pandas的索引操作 索引对象Index 1. Series和DataFrame中的索引都是Index对象 示例代码: print(type(ser_obj.index)) print(type(d ...
- Pandas 索引和切片
Series和Datafram索引的原理一样,我们以Dataframe的索引为主来学习 列索引:df['列名'] (Series不存在列索引) 行索引:df.loc[].df.iloc[] 选择列 / ...
- pandas 索引笔记
import pandas as pd import numpy as np s = pd.Series(np.random.rand(5), index=list('abcde')) # 创建序列, ...
- pandas 索引、选取和过滤
Series索引的工作方式类似于NumPy数组的索引,不过Series的索引值不只是整数,如: import numpy as np import pandas as pd from pandas i ...
- numpy pandas 索引注意事项
pandas.DataFrame 的 iloc # ------------------------------------------------------------ 'python式的切片,包 ...
- 数据分析处理库Pandas——索引进阶
Series结构 筛选数据 指定值 备注:查找出指定数值的索引和数值. 逻辑运算 备注:查找出值大于2的数据. 复合索引 DataFrame结构 显示指定列 筛选显示 备注:值小于0的显示原值,否则显 ...
- 数据分析处理库Pandas——索引
显示DataFrame结构中的指定列 使用iloc索引 指定一行的信息 指定多行信息 备注:第[1,5)行信息. 指定行和列 备注:第[0,5)行中第[1,3)列信息. 使用loc索引 指定行信息 备 ...
- 【python】pandas 索引操作
选择.修改数据(单层索引) 推荐使用.at..iat..loc..iloc 操作 句法 结果 备注 选择列 df[col] Series 基于列名(列的标签),返回Series 用标签选择行 df.l ...
随机推荐
- 2018-8-10-win10-uwp-ping
title author date CreateTime categories win10 uwp ping lindexi 2018-08-10 19:17:19 +0800 2018-2-13 1 ...
- centos7上的h5ai折腾记
过程: 安装php-fpm和nginx,且经验证二者在其他项目可以正常使用. 从debian8拷贝过来_h5ai的nginx配置如下: location ~ [^/]\.php(/|$) { fast ...
- ZOJ-3524 拓扑排序+完全背包(好题)
题意:在一个DAG上,主角初始有W钱起点在s点,每个点有一个代价wi和价值vi,主角从起点走到某一点不能回头走,一路上可以买东西(一个点的东西可以买无限次),且体力消耗为身上负重*路径长度.主角可以在 ...
- Django之template操作
一.模板渲染的原理 (一)使用 模板渲染首先有一个模板对象Template,然后有一个上下文对象Context,通过render方法进行渲染,最后返回字符串,render方法的本质还是调用了HttpR ...
- hdu 5792 树状数组+离散化+思维
题目大意: Given a sequence A with length n,count how many quadruple (a,b,c,d) satisfies: a≠b≠c≠d,1≤a< ...
- rest framework 之前
在开始rest framework之前,我们先来了解一下什么是restful rest 是一种软件架构风格,Representational state Transfer 它从资源的角度去看整个网络, ...
- Spring data JPA 快速入门
1需求 向客户中插入一条数据 如果使用Jpa框架可以不用先建表 可以使用框架生成表 2 实现步骤 a 创建工程 使用maven管理工程 <properties> ...
- 【SQL】Mysql常用sql语句记录
1.创建用户.赋予权限 CREATE DATABASE scadm DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; CREATE USER 's ...
- 【Flutter学习】基本组件之基本网格Gradview组件
一,概述 数据量很大的时用矩阵方式排列比较清晰,此时用网格列表组件,即为GridView组件,可实现多行多列的应用场景. 使用GridView创建网格列表有多种方式: GridView.count 通 ...
- Shell基础(一):Shell基础应用、简单Shell脚本的设计、使用Shell变量、变量的扩展应用
一.Shell基础应用 目标: 本案例要求熟悉Linux Shell环境的特点,主要练习以下操作: 1> 切换用户的Shell环境 2> 练习命令历史.命令别名 3 ...