pandas提取列数据的方法,pandas获取dataframe的列属性名
数据框是熊猫包装的重要对象,熟练掌握数据框的基本操作是十分必要的。下面这篇文章主要介绍熊猫中提取DataFrame部分列的一些方法,通过示例代码详细介绍,有需要的朋友可以参考一下。
00-1010前言方法1: df[columns]方法2: df.loc[]:使用标签(行名或列名)进行索引。方法三:df。iloc [] 3360i表示整数,使用整数位置(行或列的整数位置,从0开始)作为索引。补充:提取所有带有“线索”和“浏览”字段的列名。参考:摘要
目录
处理表格数据时,一行数据就是一个样本,列就是要提取的特征。如何选择其中的一些列?本文分享一些方法。
以下列数据为例:
进口熊猫作为pd
数据=pd。DataFrame({Name:[安娜,贝蒂,理查德,菲利普,保罗],
course1:[85,83,90,84,85],
课程2:[90,85,83,88,84],
course3:[82,86,81,91,85],
水果 :[苹果,香蕉,苹果,橘子,桃子],
sport:[篮球,排球,足球,篮球,棒球]},
index=[1,2,3,4,5])
df=pd。数据帧(数据)
df
name courses 1 course 2 course 3 fruitsport 1 Anna 859082 applebasketball 2 Betty 838586 bananavolleyball 3 Richard 908381 applebootball 4 Philip 848891 range basketball 5 Paul 858485每场棒球
前言
先看最简单的情况。输入列名并选择一列。例如:
df[课程2]
1 90
2 85
3 83
4 88
5 84
Name: course2,dtype: int64
df[列列表]:选择一列。例如:
df[[course2 , fruit]]
课程2水果190苹果285香蕉383苹果488
td>orange584peach
或者以 column list (list 变量)的形式导入到 df[ ] 中,例如:
select_cols=[course2,fruit]
course2fruit190apple285banana383apple488orange584peach
可以用 column list=df.columns[start:end] 的方式选择连续列,start 和 end 均为数字,不包括 end 列。例如:
select_cols=df.columns[1:4]
course1course2course318590822838586390838148488915858485
你可能注意到,其中有 3 列的名字相近:‘course1’,‘course2’,‘course3’。怎么提取这三列呢?这里分享在Kaggle 上看到 一位大神使用的 list comprehension方法。
select_cols=[c for c in df.columns if course in c]
course1course2course318590822838586390838148488915858485
但是,如果你想输入df['course1':'course3'] 来索引连续列,就会报错。而输入数字索引df[1:3]时,结果不再是列索引,而是行索引,如下所示:
df[1:3]
Namecourse1course2course3fruitsport2Betty838586bananavolleyball3Richard908381applefootball
以下两种方法 df.loc[]和df.iloc[]就可以解决这个问题,可以明确行或列索引。还可以同时取多行和多列。
方法二:df.loc[]:用 label (行名或列名)做索引。
输入 column_list 选择多列 [:, column_list],括号中第一个: 表示选择全部行。例如:
df.loc[:,[course2,fruit]]
course2fruit190apple285banana383apple488orange584peach
选择连续多列 [:,start_col: end_col],注意:包括 end_col。例如:
df.loc[:,course2:fruit]
course2course3fruit19082apple28586banana38381apple48891orange58485peach
选择多行和多列,例如:
df.loc[1:3,course2:fruit]
course2course3fruit19082apple28586banana38381apple
与 df[ ]类似,df.loc[ ]括号内也可以输入判断语句,结果是对行做筛选。例如:
df.loc[df[course1]>84]
Namecourse1course2course3fruitsport1Anna859082applebasketball3Richard908381applefootball5Paul858485peachbaseball
方法三:df.iloc[]: i 表示 integer,用 integer location(行或列的整数位置,从0开始)做索引。
df.iloc与df.loc用法类似,只是索引项不同。
df.iloc[:,[2,4]]
course2fruit190apple285banana383apple488orange584peach
选择连续多列:df.iloc[:, start_ix:end_ix],注意:不包括 end_ix。例如:
df.iloc[:,2:5]
course2course3fruit19082apple28586banana38381apple48891orange58485peach
选择多行与多列,例如:
df.iloc[1:3,[2,4]]
course2fruit285banana383apple
与 df.loc[] 不同,df.iloc[] 括号内不可以输入判断语句。
补充:提取所有列名中包含线索、浏览字段的列
import pandas as pd
参考:
1.如何选取dataframe的多列-教程:https://www.geeksforgeeks.org/how-to-select-multiple-columns-in-a-pandas-dataframe/
2.用 list comprehension 选择多列:https://www.kaggle.com/code/robikscube/ieee-fraud-detection-first-look-and-eda/notebook
3.df.loc 与 df.iloc 的比较:https://stackoverflow.com/questions/31593201/how-are-iloc-and-loc-different
总结
到此这篇关于pandas中提取DataFrame某些列的文章就介绍到这了,更多相关pandas提取DataFrame某些列内容请搜索盛行IT软件开发工作室以前的文章或继续浏览下面的相关文章希望大家以后多多支持盛行IT软件开发工作室!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。