DataFrame⾏列数据的筛选
⼀、对DataFrame的认知
DataFrame的本质是⾏(index)列(column)索引+多列数据。
DataFrame默认索引是序号(0,1,2…),可以理解成位置索引。
⼀般我们⽤id标识不同记录,不会改变index。但为了理解不同特征(列)含义,我们往往会重新指定column。⼆、对dataframe进⾏⾏列数据筛选
import pandas as pd
import numpy as np
from pandas import DataFrame
df = DataFrame(np.arange(20).reshape((4,5)),column = list('abcde')) #⽣成⼀个DataFrame
1.df[]&df. 选取列数据
df.a
df[[‘a’,’b’]]
2.df.loc[[index],[colunm]] 通过标签选择数据
正则匹配多行不对⾏进⾏筛选时,[index]处填 : (不能为空),即df.loc[:,’a’]表⽰选取a列全部数据。
df.loc[0,’a’]
df.loc[0:1,[‘a’,’b’]]
df.loc[[0,2],[‘a’,’c’]]
3.df.iloc[[index],[colunm]] 通过位置选择数据
不对⾏进⾏筛选时,同df.loc[],即[index]处不能为空。
df.iloc[0,0]
df.iloc[0:1,1:3]
df.iloc[[0,2],[1,3]]
4.df.ix[[index],[column]] 通过标签or位置选择数据
df.ix[]混合了标签和位置选择。需要注意的是,[index]和[column]的框内需要指定同⼀类的选择。
df.ix[[0:1],[‘a’,3]]
报错
5.多条件筛选
原表数据:
(1)使⽤“与”条件进⾏筛选
df1 = df.loc[(df['现价']>6)&(df['开板'] == 0)]
print(df1)
结果只有2条数据符合要求:
(2) 使⽤“或”条件进⾏筛选
df2 = df.loc[(df['现价']>10)|(df['连板'] >2)]
print(df2)
则有4条数据符合要求:(分别有2和6符合条件1,⽽0、1和2符合条件2)
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论