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 ...
随机推荐
- bootstrap学习(四)表格
基础样式: 自适应沾满浏览器 <table class="table"> <tr> <th>序号</th> <th>姓名 ...
- android html布局界面
- Spring注解之@Component、@Controller、@Service、@Repository
目录 1.使用这四个注解的前提 2.详解@Component 3. @Service("XXX")或者@Service(value = "XXX")情况 4.总 ...
- subst - 替换文件中的定义
总览 (SYNOPSIS) subst [ -e editor ] -f substitutions victim ... 描述 (DESCRIPTION) Subst 能够 替换 文件 的 内容, ...
- Codeforces 351C Jeff and Brackets 矩阵优化DP
题意:你要在纸上画一个长度为n * m的括号序列,第i个位置画左括号的花费是a[i % n], 画右括号的花费是b[i % n],问画完这个括号序列的最小花费.n <= 20, m <= ...
- express 路由能力
demo var express=require("express"); var app=express(); app.get("/",function(req ...
- Web server failed to start. Port 8080 was already in use.
Description: Web server failed to start. Port 8080 was already in use. Action: Identify and stop the ...
- jstl jsp long to date
jsp 页面中使用jstl el 将long转换为时间类型,并格式化输出 <%@ taglib uri="http://java.sun.com/jsp/jstl/core" ...
- rest_framework框架实现之(视图,路由,渲染器)
一视图 一 在前面我们使用视图时继承的时APIview from rest_framework.response import Response from rest_framework.paginat ...
- C/C++ fgets
{ str_normalize_init(); unsigned options = SNO_TO_LOWER | SNO_TO_HALF; if (argc > 1) ...