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 ...
随机推荐
- 【记录】ajax跨域问题jsonp正确的使用方式
最近遇到ajax请求跨域问题,解决方案用jsonp,现记录如下: //跨域请求jsonp封装 function doJsonPostCallBack(type, url, data,async, ca ...
- Lambda select 动态字段
直接上代码 //测试数据 public static List<User> myList = new List<User>() { , Name=,IsChild=false} ...
- springBoot框架在idea中创建流程 同时存在一个项目中
1.新建普通maven工程 2.在父级pom中按需修改 3.删除父级src目录 4.创建公共模块common,里面只有service接口和实体类 5.构建微服务模块,provider 6.引用Zook ...
- 新建门脸Facade类
1.App\Contract目录下新建 CommonContract 类 <?php namespace App\Contract; use Carbon\Carbon; use \Dimsav ...
- SQL的多表查询(Navicat)
-- 部门表 CREATE TABLE dept ( id INT PRIMARY KEY PRIMARY KEY, -- 部门id dname VARCHAR(50), -- 部门名称 loc VA ...
- Delphi max函数和min函数
uses单元 math: min函数 min(A,B); 比较A.B的大小,取最小值 max函数 min(A,B); 比较A.B的大小,取最大值 原型示例:function Min(const A ...
- Delphi 打印纸张选项设置参数
{ paper selections } {$EXTERNALSYM DMPAPER_LETTER} DMPAPER_LETTER = 1; { Letter 8 12 x 11 in } {$EXT ...
- LUOGU P2408 不同子串个数(后缀数组)
传送门 解题思路 后缀数组求本质不同串的裸题.\(ans=\dfrac{n(n+1)}{2} -\sum height[i]\). 代码 #include<iostream> #inclu ...
- RabbitMQ-----的基本安装
RabbitMQ的基本安装 一 docker下安装RabbitMQ 首先使用 docker search rabbitmq命令查找docker仓库是否存在rabbitmq镜像,可以发现docker仓库 ...
- hibernate使用手写sql以及对结果list的处理
Session sees=simpleDAO.getSessionFactory().openSession(); String sql = "select * from fhcb_08_t ...