pandas DataFrame数据筛选和切片

Posted aro7

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了pandas DataFrame数据筛选和切片相关的知识,希望对你有一定的参考价值。

DataFrame数据筛选——loc,iloc,ix,at,iat

条件筛选

单条件筛选

选取col1列的取值大于n的记录: data[data[‘col1‘]>n]
筛选col1列的取值大于n的记录,但是显示col2,col3列的值: data[[‘col2‘,‘col3‘]][data[‘col1‘]>n]
选择特定行:使用isin函数根据特定值筛选记录。筛选col1值等于list中元素的记录: data[data.col1.isin(list)]
 
 

多条件筛选

可以使用&(并)与| (或)操作符或者特定的函数实现多条件筛选
使用&筛选col1列的取值大于n,col2列的取值大于m的记录:data[(data[‘col1‘] > n) & (data[‘col2‘] > m)]
使用numpy的logical_and函数完成同样的功能:data[np.logical_and(data[‘col1‘]> n,data[‘col2‘]>m)]
 
 

索引筛选

切片操作

使用切片操作选择特定的行: data[n:m]
传入列名选择特定的列: data[[‘col1‘,‘col2‘]]
 

loc函数

当每列已有column name时,用 data [‘col1‘] 就能选取出一整列数据。如果你知道column names 和index,可以选择 .loc同时进行行列选择: data.loc[index,‘colum_names‘]
 

iloc函数

使用方法同loc函数,但是不再输入列名,而是输入列的index: data.iloc[row_index,col_index]

 

ix函数

ix的功能更加强大,参数既可以是索引,也可以是名称,相当于,loc和iloc的合体。需要注意的是在使用的时候需要统一,在行选择时同时出现索引和名称, 同样在同行选择时同时出现索引和名称: data.ix[n:m,[‘col1‘,‘col2‘]]
但是在最新的版本中,ix函数不建议使用
 
 

at函数

根据指定行index及列label,快速定位DataFrame的元素,选择列时仅支持列名:data.at[row_index,‘column_names‘]
 
 

iat函数

与at的功能相同,只使用索引参数:data.iat[row_index,column_index]
 
 

以上是关于pandas DataFrame数据筛选和切片的主要内容,如果未能解决你的问题,请参考以下文章

Pandas笔记 · DataFrame.loc()和DataFrame.iloc()

Pandas笔记 · DataFrame.loc()和DataFrame.iloc()

pandas 用 .loc[,]=value 筛选并原地赋值回原来的 DataFrame

pandas通过DatetimeProperties对象获取日期对象是否是所在年份的最后一天(is year end)筛选dataframe数据中日期对象是所在年份最后一天的数据行

数据蛙提高-pandas学习

pandas筛选dataframe数据:获取dataframe的前N行数据