返回介绍

2.5 添加标题行

发布于 2024-01-27 22:10:03 字数 2094 浏览 0 评论 0 收藏 0

有些时候,电子表格中没有标题行,但你确实希望所有列都有列标题。在这种情况下,可以使用脚本添加列标题。

为了演示如何使用脚本添加列标题,需要对输入文件做一下修改:

(1) 在电子表格程序中打开 supplier_data.csv。

(2) 删除文件中的第一行(即包含列标题的标题行)。

(3) 将文件保存为 supplier_data_no_header_row.csv。如图 2-11 所示。

图 2-11:包含数据行的 CSV 文件,没有标题行

01. 基础Python

要使用基础 Python 添加列标题,在文本编辑器中输入下列代码,然后将文件保存为 12csv_reader_add_header_row.py:

 1 #!/usr/bin/env python3
 2 import csv
 3 import sys
 4 input_file = sys.argv[1]
 5 output_file = sys.argv[2]
 6 with open(input_file, 'r', newline='') as csv_in_file:
 7     with open(output_file, 'w', newline='') as csv_out_file:
 8          filereader = csv.reader(csv_in_file)
 9          filewriter = csv.writer(csv_out_file)
10          header_list = ['Supplier Name', 'Invoice Number',\
11                         'Part Number', 'Cost', 'Purchase Date']
12          filewriter.writerow(header_list)
13          for row in filereader:
14               filewriter.writerow(row)

第 10 行代码创建了列表变量 header_list,其中包含了要作为列标题的 5 个字符串。第 12 行代码将这些列表值写入输出文件的第一行。同样,第 14 行代码将所有数据行写入输出文件,放在标题行下面。

要运行这个脚本,在命令行中输入以下命令,然后按回车键:

python 12csv_reader_add_header_row.py supplier_data_no_header_row.csv\
output_files\12output.csv

你可以打开输出文件 12output.csv 查看一下结果。

02. pandas

pandas 中的 read_csv 函数可以直接指定输入文件不包含标题行,并可以提供一个列标题列表。要给一个没有标题行的数据集添加标题行,在文本编辑器中输入下列代码,然后将文件保存为 pandas_add_header_row.py:

#!/usr/bin/env python3
import pandas as pd
import sys
input_file = sys.argv[1]
output_file = sys.argv[2]
header_list = ['Supplier Name', 'Invoice Number',\
               'Part Number', 'Cost', 'Purchase Date']
data_frame = pd.read_csv(input_file, header=None, names=header_list)
data_frame.to_csv(output_file, index=False)

要运行这个脚本,在命令行中输入以下命令,然后按回车键:

python pandas_add_header_row.py supplier_data_no_header_row.csv\
output_files\pandas_output.csv

你可以打开输出文件 pandas_output.csv 查看一下结果。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文