pandas怎么读取dataframe特定行列
这篇文章主要介绍pandas怎么读取dataframe特定行列,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!
1.按列取、按索引/行取、按特定行列取
importnumpyasnpfrompandasimportDataFrameimportpandasaspddf=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列
2.按条件取行
选取等于某些值的行记录用==df.loc[df[‘column_name']==some_value]选取某列是否是某一类型的数值用isindf.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)]
3.取完之后替换
df=pd.DataFrame({"id":[25,53,15,47,52,54,45,9],"sex":list('mfmfmfmf'),'score':[1.2,2.3,3.4,4.5,6.4,5.7,5.6,4.3],"name":['daisy','tony','peter','tommy','ana','david','ken','jim']})
将男性(m)替换为1,女性(f)替换为0
方法1:
df.ix[df['sex']=='f','sex']=0df.ix[df['sex']=='m','sex']=1
注:在上面的代码中,逗号后面的‘sex'起到固定列名的作用
方法2:
df.sex[df['sex']=='m']=1df.sex[df['sex']=='f']=0
4.删除特定行
#要删除列“score”<50的所有行:df=df.drop(df[df.score<50].index)df.drop(df[df.score<50].index,inplace=True)#多条件情况#可以使用操作符:|只需其中一个成立,&同时成立,~表示取反,它们要用括号括起来。#例如删除列“score<50和>20的所有行df=df.drop(df[(df.score<50)&(df.score>20)].index)
以上是“pandas怎么读取dataframe特定行列”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注亿速云行业资讯频道!
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。