pandas 添加空列并赋空值案例

小林子
小林子
发布时间:2026-10-12| 2人浏览过
原创

本文介绍在 pandas 中为 DataFrame 添加空列并赋空值的方法。通过 apply 函数或直接赋值实现,并解决多文件标签映射时的列扩展问题。

首先构建用于测试的 DataFrame 对象。

>>> import pandas as pd
>>> df = pd.DataFrame([{'a':1, 'b':2}, {'a':3, 'b':4}])
>>> df
 a b
0 1 2 
1 3 4 

接下来演示如何向该对象中添加两个空列。

>>> df[['c','d']]=df.apply(lambda x:('',''),axis=1,result_type='expand')
>>> df
 a b c d
0 1 2 
1 3 4 

此外,也可以采用逐列单独添加的方式来实现。

>>> df['c'] = ''
>>> df['d'] = ''

然而,若尝试直接对不存在的多个列名进行批量赋值,将会引发错误。

>>> df[['c', 'd']] = ''
KeyError: "None of [Index(['c', 'd'], dtype='object')] are in the [columns]"

补充说明:关于使用 pandas 的 DataFrame 类型处理 CSV 文件并增加新列的操作。

具体问题分析如下。

涉及两个 CSV 文件,分别为 df_val.csv 和 df_classes.scv。其中 df_val.csv 包含 2 列共 36500 行数据,而 df_classes.scv 包含 3 列共 365 行数据。

两个 CSV 文件之间的关联在于:实际存在 365 个文件夹,每个文件夹内包含 100 张图片。df_val.csv 记录了所有图片的路径,而 df_classes.scv 则记录了这 365 个文件夹的名称及其对应的标签。

主要目标是:将 df_classes.scv 文件中的标签信息映射到 df_val.csv 文件中(注:每个文件夹下的 100 张图片共享同一个标签)。

具体的实现代码如下。

代码逻辑说明如下。

读取第二个文件时,由于该文件以空格作为分隔符(第一个文件为逗号分隔),因此需要指定 sep='\s' 和 engine='python'。此外,因文件中包含中文字符,还需指定 encoding='UTF-8'。

使用 print 语句用于查看中间结果,以便调试。

需注意 DataFrame 类型的索引访问顺序为 [列][行]。

由于每 100 个样本对应另一个文件夹中的一个条目,因此需要通过循环将标签复制 100 次。具体参考以下示例。

此处扩展一个其他相关示例。

解决该问题的思路是:先利用 list 构建好需要添加的列数据,随后使用 insert 方法将其插入。目前尚未发现直接指定行数进行添加的方法。

总结要点。

若直线路径不可行,可尝试曲线救国的策略。

list 数据结构确实简单且实用。

编程工作带来满足感。

以上为个人经验分享,旨在提供参考。欢迎读者支持,如有错误或未尽之处,敬请指正。

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。