一、按列取、按索引/行取、按特定行取

 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-索引的更多相关文章

  1. pandas 索引与列相互转化

    1. 准备数据 import pandas as pd from io import StringIO csv_txt = '''"date","player1" ...

  2. Pandas索引和选择数据

    在本章中,我们将讨论如何切割和丢弃日期,并获取Pandas中大对象的子集. Python和NumPy索引运算符"[]"和属性运算符".". 可以在广泛的用例中快 ...

  3. pandas索引操作

    Pandas的索引操作 索引对象Index 1. Series和DataFrame中的索引都是Index对象 示例代码: print(type(ser_obj.index)) print(type(d ...

  4. Pandas 索引和切片

    Series和Datafram索引的原理一样,我们以Dataframe的索引为主来学习 列索引:df['列名'] (Series不存在列索引) 行索引:df.loc[].df.iloc[] 选择列 / ...

  5. pandas 索引笔记

    import pandas as pd import numpy as np s = pd.Series(np.random.rand(5), index=list('abcde')) # 创建序列, ...

  6. pandas 索引、选取和过滤

    Series索引的工作方式类似于NumPy数组的索引,不过Series的索引值不只是整数,如: import numpy as np import pandas as pd from pandas i ...

  7. numpy pandas 索引注意事项

    pandas.DataFrame 的 iloc # ------------------------------------------------------------ 'python式的切片,包 ...

  8. 数据分析处理库Pandas——索引进阶

    Series结构 筛选数据 指定值 备注:查找出指定数值的索引和数值. 逻辑运算 备注:查找出值大于2的数据. 复合索引 DataFrame结构 显示指定列 筛选显示 备注:值小于0的显示原值,否则显 ...

  9. 数据分析处理库Pandas——索引

    显示DataFrame结构中的指定列 使用iloc索引 指定一行的信息 指定多行信息 备注:第[1,5)行信息. 指定行和列 备注:第[0,5)行中第[1,3)列信息. 使用loc索引 指定行信息 备 ...

  10. 【python】pandas 索引操作

    选择.修改数据(单层索引) 推荐使用.at..iat..loc..iloc 操作 句法 结果 备注 选择列 df[col] Series 基于列名(列的标签),返回Series 用标签选择行 df.l ...

随机推荐

  1. XStream的简单使用

    XStream XStream是一个java对象和xml相互转换的工具 创建XStream对象:XStream stream = new XStream() Java对象转换成xml:stream . ...

  2. 2018-2-13-win10-安装Mpi

    title author date CreateTime categories win10 安装Mpi lindexi 2018-2-13 17:23:3 +0800 2018-2-13 17:23: ...

  3. Kali Linux 开启SSH

    Kali Linux安装好默认是不开启ssh的,需要手工开启 1.修改/etc/ssh/sshd_config 配置文件: root@mykali:~# vi  /etc/ssh/sshd_confi ...

  4. codeforces1156D 0-1-Tree 换根dp

    题目传送门 题意: 给定一棵n个点的边权为0或1的树,一条合法的路径(x,y)(x≠y)满足,从x走到y,一旦经过边权为1的边,就不能再经过边权为0的边,求有多少边满足条件? 思路: 首先,这道题也可 ...

  5. VersionInformation.dwPlatformId == 2

    Result:=OSVI.dwPlatformId;  {  返回值:  为0表示为win3x系统;  为1表示为win9x系统;  为2表示为winNT;  为3表示为win2000系统;   }

  6. c# 通过地址下载流然后保存文件到本地

    1.下载文件并保存文件到本地 private void GetFileFromNetUrl(string url) { try { System.Net.WebRequest req = System ...

  7. 【架构】spring framework核心框架体系结构

    Spring官方文档,用的版本为4.3.11版本. 一.引用官方文档 2.2.1核心集装箱 所述核心容器由以下部分组成spring-core, spring-beans,spring-context, ...

  8. 【LeetCode 16】最接近的三数之和

    题目链接 [题解] 上一道题那个算法求三个数的和为0的时候,其实就是一个不断在逼近本题中x=0的情况. 那么就套用上面那道题的做法. 在逼近的时候,取个差值的最小值就好了. [代码] class So ...

  9. php linux下安装xml扩展

    1.进入PHP安装源码包,找到ext下的ftp,进入 cd /home/local/php-5.6.25/ext/xml 2./usr/local/php/bin/phpize 3../configu ...

  10. DLL中使用字符串时的注意事项。

    library dll1; uses SysUtils, Classes; {$R *.res} function TESTDLL:string;stdcall; begin Result:='tes ...