pandas 添加空列并赋空值案例

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

本文介绍在 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 相关产品和应用

全部下载

专题列表