python pandas dataframe如何获取除了指定列以外的所有列

 更新时间:2023年09月12日 11:10:18   作者:宇宙全能王  
这篇文章主要介绍了python pandas dataframe如何获取除了指定列以外的所有列问题,具有很好的参考价值,如有错误或未考虑完全的地方,望不吝赐教

pandas dataframe获取除了指定列以外的所有列

假设有个dataframe叫做df,有[‘a’,‘b’,‘c’,‘d’,‘e’,‘f’,‘g’]列,但是你只想要除了’e’列之外的所有列

两种方法

方法一

del df['e']

方法二

col = df.columns.values.tolist()
col.remove('e')  # 切不可用col = col.remove('e'),或者直接把remove加到上面这行代码中,否则col为空
new_df = df[col].copy()
print(new_df)

pandas中提取DataFrame的某些列

在处理表格型数据时,一行数据是一个 sample,列就是待提取的特征。怎么选取其中的一些列呢?本文分享一些方法。

使用如下的数据作为例子:

import pandas as pd
df = pd.DataFrame({'Name':['Anna', 'Betty', 'Richard', 'Philip','Paul'],
        'course1':[85,83,90,84,85],
        'course2':[90,85,83,88,84],
        'course3':[82,86,81,91,85],
        'fruit':['apple','banana','apple','orange','peach'],
        'sport':['basketball', 'volleyball', 'football', 'basketball','baseball']},
         index=[1,2,3,4,5])
df
Namecourse1course2course3fruitsport
1Anna859082applebasketball
2Betty838586bananavolleyball
3Richard908381applefootball
4Philip848891orangebasketball
5Paul858485peachbaseball

方法一

df[columns]

先看最简单的情况。输入列名,选择一列。

例如:

df['course2']
1    90
2    85
3    83
4    88
5    84
Name: course2, dtype: int64

df[column list]:选择列。

例如:

df[['course2','fruit']]
course2fruit
190apple
285banana
383apple
488orange
584peach

或者以 column list (list 变量)的形式导入到 df[ ] 中,

例如:

select_cols=['course2','fruit']
df[select_cols]
course2fruit
190apple
285banana
383apple
488orange
584peach

可以用 column list=df.columns[start:end] 的方式选择连续列,start 和 end 均为数字,不包括 end 列。

例如:

select_cols=df.columns[1:4]
df[select_cols]
course1course2course3
1859082
2838586
3908381
4848891
5858485

你可能注意到,其中有 3 列的名字相近:‘course1’,‘course2’,‘course3’。怎么提取这三列呢?这里分享在Kaggle 上看到 一位大神使用的 list comprehension方法

select_cols=[c for c in df.columns if 'course' in c]
df[select_cols]
course1course2course3
1859082
2838586
3908381
4848891
5858485

但是,如果你想输入 df['course1':'course3'] 来索引连续列,就会报错。而输入数字索引 df[1:3] 时,结果不再是列索引,而是行索引,

如下所示:

df[1:3]
Namecourse1course2course3fruitsport
2Betty838586bananavolleyball
3Richard908381applefootball

以下两种方法 df.loc[]和df.iloc[]就可以解决这个问题,可以明确行或列索引。还可以同时取多行和多列。

方法二

df.loc[]:用 label (行名或列名)做索引。

输入 column_list 选择多列 [:, column_list] ,括号中第一个 : 表示选择全部行。

例如:

df.loc[:,['course2','fruit']]
course2fruit
190apple
285banana
383apple
488orange
584peach

选择连续多列 [:,start_col: end_col] ,注意:包括 end_col。

例如:

df.loc[:,'course2':'fruit']
course2course3fruit
19082apple
28586banana
38381apple
48891orange
58485peach

选择多行和多列,

例如:

df.loc[1:3,'course2':'fruit']
course2course3fruit
19082apple
28586banana
38381apple

与 df[ ]类似,df.loc[ ]括号内也可以输入判断语句,结果是对行做筛选。

例如:

df.loc[df['course1']>84]
#注:输入df[df['course1']>84],输出结果相同
Namecourse1course2course3fruitsport
1Anna859082applebasketball
3Richard908381applefootball
5Paul858485peachbaseball

方法三

df.iloc[]: i 表示 integer,用 integer location(行或列的整数位置,从0开始)做索引。

df.iloc与df.loc用法类似,只是索引项不同。

df.iloc[:,[2,4]]
course2fruit
190apple
285banana
383apple
488orange
584peach

选择连续多列:df.iloc[:, start_ix:end_ix],注意:不包括 end_ix。例如:

df.iloc[:,2:5]
course2course3fruit
19082apple
28586banana
38381apple
48891orange
58485peach

选择多行与多列,例如:

df.iloc[1:3,[2,4]]
course2fruit
285banana
383apple

与 df.loc[] 不同,df.iloc[] 括号内不可以输入判断语句。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Django nginx配置实现过程详解

    Django nginx配置实现过程详解

    这篇文章主要介绍了Django nginx配置实现过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-09-09
  • Python selenium模拟网页点击爬虫交管12123违章数据

    Python selenium模拟网页点击爬虫交管12123违章数据

    本次介绍怎么以模拟点击方式进入交管12123爬取车辆违章数据,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-05-05
  • 关于pandas中的.update()方法解析

    关于pandas中的.update()方法解析

    这篇文章主要介绍了关于pandas中的.update()方法解析,在Pandas中,update()方法用于将一个DataFrame或Series对象中的值更新为另一个DataFrame或Series对象中的对应值,需要的朋友可以参考下
    2023-07-07
  • SELENIUM自动化模拟键盘快捷键操作实现解析

    SELENIUM自动化模拟键盘快捷键操作实现解析

    这篇文章主要介绍了SELENIUM自动化模拟键盘快捷键操作实现解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-10-10
  • Python文件打开读取写入方法实用案例

    Python文件打开读取写入方法实用案例

    我们在工作中经常需要用python对文本文件进行内容的读取和写入,下面这篇文章主要给大家介绍了关于Python文件打开读取写入方法的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2023-05-05
  • python怎么删除缓存文件

    python怎么删除缓存文件

    在本篇文章里小编给大家整理的是一篇关于python删除缓存文件方法,需要的朋友们可以学习下。
    2020-07-07
  • Python复合赋值运算符由浅入深实例探究

    Python复合赋值运算符由浅入深实例探究

    这篇文章主要为大家介绍了Python复合赋值运算符由浅入深实例探究,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2024-01-01
  • 用Python输出一个杨辉三角的例子

    用Python输出一个杨辉三角的例子

    这篇文章主要介绍了用Python和erlang输出一个杨辉三角的例子,同时还提供了一个erlang版杨辉三角,需要的朋友可以参考下
    2014-06-06
  • python执行js脚本报错CryptoJS is not defined问题

    python执行js脚本报错CryptoJS is not defined问题

    这篇文章主要介绍了python执行js脚本报错CryptoJS is not defined问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-05-05
  • 利用Python绘制创意中秋节月饼

    利用Python绘制创意中秋节月饼

    又是一年中秋至——花好月圆夜。turtle库作为Python重要的标准库之一,是最有价值的程序设计入门实践库,它是程序设计入门层面最常用的基本绘图库。本文将使用turtle(海龟)来绘制中秋创意月饼,感兴趣的可以了解一下
    2022-09-09

最新评论