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 ...
随机推荐
- shell变量替换扩展 变量测试
- json数据返回数字,页面显示文字处理
var obj = { 1:'你好1', 2:'你好2', 3:'你好3' } var e = obj[1]; e; //'你好1'
- vue 通过插槽分发内容
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- Java开发常见基础题大全
1.&和&&的区别? &:逻辑与(and),运算符两边的表达式均为true时,整个结果才为true. &&:短路与,如果第一个表达式为false时,第二 ...
- spring data jpa 配置文件1
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.spr ...
- Shiro学习(14)SSL
对于SSL的支持,Shiro只是判断当前url是否需要SSL登录,如果需要自动重定向到https进行访问. 首先生成数字证书,生成证书到D:\localhost.keystore 使用JDK的keyt ...
- 性能超过DRUID的最强数据库连接池——HikariCP相关配置及简单示例
在配置application.yml时,对hikari的配置会有这样一个字段validationQuery. validationQuery是用来验证数据库连接的查询语句,这个查询语句必须是至少返回一 ...
- android ellipsize的使用及实现跑马灯效果总结
参考资料: http://blog.csdn.net/huiwolf2008/article/details/7901084 http://www.cnblogs.com/Gaojiecai/arch ...
- (转)OpenFire源码学习之七:组(用户群)与花名册(用户好友)
转:http://blog.csdn.net/huwenfeng_2011/article/details/43413651 Group 在openfire中的gorop——组,也可以理解为共享组.什 ...
- java程序中线程cpu使用率计算
原文地址:https://www.imooc.com/article/27374 最近确实遇到题目上的刚需,也是花了一段时间来思考这个问题. cpu使用率如何计算 计算使用率在上学那会就经常算,不过往 ...