「Python|Pandas|场景案例」如何只保留DataFrame数据集的某些列(要保留的列不固定)

这篇具有很好参考价值的文章主要介绍了「Python|Pandas|场景案例」如何只保留DataFrame数据集的某些列(要保留的列不固定)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

本文主要介绍在使用pandas进行数据分析过程中的数据预处理时,如果希望仅保留某些列的数据需要如何操作。同时介绍一些特殊情况,比如列是用变量存储;或者列是一个全集,处理的数据集中不一定包括列出的全部列名。

场景说明

在数据处理的时候,可能会遇到数据集包含的数据字段并不是全部会用到,甚至有些用不到的字段内容较多,在存储上会占用较多空间,在读取和使用上可能会影响性能,所以需要考虑丢弃用不到的字段,仅保留需要使用的字段。
同时,我们可能遇到一些稍微复杂一点的场景,比如:

  • 你想写一套通用程序来处理不同数据集。这些数据集对应相同类型但是不同场景,所以要使用的字段可能是作为变量传入的
  • 你使用的数据集因为业务发生变化或者扩展到多个业务场景,不同场景使用同一个数据集,但使用到的字段集合不同
  • 你使用的数据集来自爬虫,爬取的数据源网站会不断改版,能获取的到的数据字段可能发生变化

这就要求能够使用变量存储要使用的字段,同时数据集中的字段就算没有包含全部指定字段,也不能抛出KeyError之类的处理错误。

解决方案

基本使用

假设我们的数据集有四列,分别是col_1, col_2, col_3, col_4
python数据分析的预处理过程中常用的是pandas库,pandas库中对这种保留指定列/丢弃指定列有对应的写法和函数:

  • 只保留两列 col_1col_2
    df = df[['col_1', 'col_2']]
  • 丢弃col_3这一列
    df = df.drop(['col_3', 'col_4'], axis=1)

加入变量

用变量把字段集合存储起来就可以改成

fileds_to_use = ['col_1', 'col_2']

# 只保留两列 `col_1` 和 `col_2` 
df = df[ fileds_to_use ]

# 丢弃`col_3`这一列
fields_to_drop = set(df.columns) - set(fileds_to_use)
df = df.drop(fields_to_drop, axis=1)

考虑数据集没有包含全部目标字段的情况

如果我们的数据集字段只有col_1, col_3, col_4三列,我们要使用的还是col_1, col_2两列,那么:

  • 尝试drop用不到的col_3col_4不会出错
  • 但是尝试用df[ fileds_to_use ]会因为数据集里没有col_2而抛出KeyError: "['col_2'] not in index"的错误

解决这个问题本质上就是加一层检查,只有字段在数据集包含的列名中,才进行保留,可以自己写,也可以调用pandas的函数,如下:

# 自己写一个过滤
fileds_to_use  = ['col_1', 'col_2']
fileds_set = set(fileds_to_use)
column_to_use = [column for column in df.columns if column in fileds_set]
df = df[ column_to_use ]

# 调用 pandas 的函数
column_to_use = df.columns[ df.columns.isin(fileds_to_use) ]
df = df[ column_to_use  ]

# 因为 pandas 还有取反操作,所以额外说一下drop可以有下面这种写法
column_to_drop = df.columns[ ~df.columns.isin(fileds_to_use) ]
df = df.drop(column_to_drop, axis=1)

以上就是根据变量值保留数据集某些列的做法,挑选一种自己喜欢的写法即可。

好书推荐:

  • 流畅的python
  • Python编程 从入门到实践 第2版
  • Python数据结构与算法分析 第2版

好课推荐:

  • 零基础学python
  • python核心技术与实战
  • python自动化办公实战

写文不易,如果对你有帮助的话,来一波点赞、收藏、关注吧~👇文章来源地址https://www.toymoban.com/news/detail-735714.html

到了这里,关于「Python|Pandas|场景案例」如何只保留DataFrame数据集的某些列(要保留的列不固定)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Pandas DataFrame如何添加一行数据?

    在Pandas DataFrame中,我们经常需要添加新的行数据。这里介绍几种向DataFrame中添加一行数据的方法。 1. 使用.loc索引器 .loc索引器可以在DataFrame的尾部添加一条新行数据,语法如下: 例如: 2. 使用.append()方法 .append()方法可以向DataFrame尾部追加一行数据,语法如下: 例如: 3. 使用insert方

    2024年02月12日
    浏览(41)
  • python中Pandas之DataFrame索引、选取数据

    总结一下 DataFrame 索引问题 先创建一个简单的 DataFrame 。 DataFrame 中有两种索引: 行索引( index ):对应最左边那一竖列 列索引( columns ):对应最上面那一横行 两种索引默认均为从 0 开始的自增整数。 可以使用 index 这个参数指定行索引, columns 这个参数指定列索引。 输出此时

    2023年04月08日
    浏览(48)
  • 【Python】【pandas】打印 DataFrame 的每一列数据类型。

    可以使用 dtypes 属性来打印 DataFrame 的每一列数据类型。 dtypes 属性返回一个 Series,其中包含每个列的名称和对应的数据类型。 以下是打印 DataFrame 每一列数据类型的示例代码: 这将输出一个包含列名和数据类型的 Series。每一行都代表 DataFrame 的一列,列名作为索引,数据类

    2024年02月14日
    浏览(46)
  • 【python】pandas-DataFrame类型数据重命名列表头

    目录 0.环境 1.将DataFrame类型数据某一列重命名 windows + jupyter notebook + python  使用场景: 在处理数据对齐的问题时,两个表格的对齐列名不相同(一个数据集是DataFrame类型,一个数据集是geopandas类型),所以想修改一下DataFrame类型数据的某一列名字,特此记录分享 1)重命名前

    2024年02月14日
    浏览(57)
  • Python 之 Pandas DataFrame 数据类型的简介、创建的列操作

    DataFrame 是 Pandas 的重要数据结构之一,也是在使用 Pandas 进行数据分析过程中最常用的结构之一,可以这么说,掌握了 DataFrame 的用法,你就拥有了学习数据分析的基本能力。 DataFrame 是一个表格型的数据结构,既有行标签(index),又有列标签(columns),它也被称异构数据表

    2024年02月06日
    浏览(39)
  • 4.11 Pandas中的DataFrame数据类型API函数参考手册(一) (Python)

    前言 Pandas 是一个专门用于数据处理和分析的 Python 库,它提供了众多强大的数据结构和函数,帮助用户更加轻松、高效地完成数据处理和分析任务。其中,DataFrame 数据类型是 Pandas 中非常重要的一种数据结构,可以方便地对二维表格数据进行操作、处理、统计和可视化等工作

    2024年02月10日
    浏览(47)
  • 【python】数据可视化,使用pandas.merge()对dataframe和geopandas类型数据进行数据对齐

    目录 0.环境 1.适用场景 2.pandas.merge()函数详细介绍 3.名词解释“数据对齐”(来自chatGPT3.5) 4.本文将给出两种数据对齐的例子 1)dataframe类型数据和dataframe类型数据对齐(对齐NAME列); 数据对齐前的两组数据集: 数据对齐后的数据集(通过pandas.merge()函数对齐): 代码 2)

    2024年02月09日
    浏览(49)
  • 【Python】数据科学工具(Numpy Pandas np.array() 创建访问数组 向量与矩阵 Series DataFrame)

    1.Numpy numpy是Python中一个非常重要的科学计算库,其最基础的功能就是N维数组对象——ndarray。 1.1 数组的创建 1)np.array() 用 np.array() 函数可以将Python的序列对象(如列表、元组)转换为ndarray数组。 2)arange、linspace、logspace np.arange(start, stop, step) :创建一个一维数组,其中的值

    2024年02月10日
    浏览(47)
  • Python综合案例-小费数据集的数据分析(详细思路+源码解析)

    目录 1. 请导入相应模块并获取数据。导入待处理数据tips.xls,并显示前5行。 2、分析数据  3.增加一列“人均消费” 4查询抽烟男性中人均消费大于5的数据  5.分析小费金额和消费总额的关系,小费金额与消费总额是否存在正相关关系。画图观察。 6分析男女顾客哪个更慷慨,

    2024年02月02日
    浏览(42)
  • pandas中如何提取DataFrame的某些列

    在处理表格型数据时,一行数据是一个 sample,列就是待提取的特征。怎么选取其中的一些列呢?本文分享一些方法。 使用如下的数据作为例子: Name course1 course2 course3 fruit sport 1 Anna 85 90 82 apple basketball 2 Betty 83 85 86 banana volleyball 3 Richard 90 83 81 apple football 4 Philip 84 88 91 orange

    2024年02月07日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包