综合运用pandas和xlsxwriter解决所需问题(读取表格、更改数据、保存到新表格),附加一些注意事项

目录

(1)声明:

(2)问题:

(4)思路:

(5)代码实现:(附加注释)

(6)注意事项:

(1)声明:

不局限于下述问题,可以根据自身情况加以修改。

(2)问题:

如下图所示,需要 在指定的位置插入数字”0″,并实现逐行插入。

综合运用pandas和xlsxwriter解决所需问题(读取表格、更改数据、保存到新表格),附加一些注意事项

提前看结果图:

综合运用pandas和xlsxwriter解决所需问题(读取表格、更改数据、保存到新表格),附加一些注意事项

(4)思路:

读取表格>>>根据关键词(标题)确定需要更改的位置>>>创建新表格>>>保存更改后的数据

(5)代码实现:(附加注释)

import xlsxwriter
import pandas as pd

------------------------------------读取表格并更改数据------------------------------------ #
df = pd.read_excel(r'G:\CSDN\python\Office_skills\demo.xls')  # 读取xlsx中第一个sheet

number = df.index.values
title = df.columns.values
print("行序号:{}".format(number))  # 打印所有行的序号
print("列标题:{}".format(title))  # 打印所有列的标题

定位关键词1的位置
i = 0
for i in range(len(title)):
    if title[i] == "Flying":
        i += 1
        print(i)
        break

定位关键词2的位置
ii = 0
for ii in range(len(title)):
    if title[ii] == "Bulldog":
        ii += 1
        print(ii)
        break

data2 = df.values  # list形式,读取表格所有数据
print("所有数据: \n", data2)

i = i - 1
ii = ii - 1
values = []
values1 = []

更改表格内容(此处是在指定位置插入数字"0")
for j in range(len(number)):
    # print(j, i)
    value = data2[j][i]
    value = str(value)
    values.append("%s%s%s" % (value[0:1], "0", value[1:5]))
    value1 = data2[j][ii]
    value1 = str(value1)
    values1.append("%s%s%s" % (value1[0:1], "0", value1[1:3]))

print(values)
print(values1)

------------------------------------创建新的表格并保存------------------------------------ #
workbook = xlsxwriter.Workbook(r'G:\CSDN\python\Office_skills\result.xlsx')  # 创建表格
worksheet_A = workbook.add_worksheet('sheet1')  # 添加表格中的一个工作表('sheet1')

str_format = {'align': 'center',  # 水平位置设置:居中
              'valign': 'vcenter',  # 垂直位置设置,居中
              'font_size': 11,  # '字体大小设置'
              }

str_format = workbook.add_format(str_format)  # 添加格式

write(坐标、内容、格式)
worksheet_A.write('B1', 'Flying', str_format)
worksheet_A.write('D1', 'Bulldog', str_format)

for i in range(len(values)):
    # 写入内容: write(坐标、内容、格式)
    worksheet_A.write(i + 1, 1, values[i], str_format)
    worksheet_A.write(i + 1, 3, values1[i], str_format)

workbook.close()  # 关闭工作薄,并把更改的信息存储到指定的文件中,此处无错误,错误的是路径有问题!!!

运行结果

行序号:[0 1 2 3 4 5 6 7 8 9]
列标题:[‘序号’ ‘Flying’ ‘Bulldog’]
2
3
所有数据:
[[ 1 12138 666]
[ 2 12138 666]
[ 3 12138 666]
[ 4 12138 666]
[ 5 12138 666]
[ 6 12138 666]
[ 7 12138 666]
[ 8 12138 666]
[ 9 12138 666]
[ 10 12138 666]]
[‘102138’, ‘102138’, ‘102138’, ‘102138’, ‘102138’, ‘102138’, ‘102138’, ‘102138’, ‘102138’, ‘102138’]
[‘6066’, ‘6066’, ‘6066’, ‘6066’, ‘6066’, ‘6066’, ‘6066’, ‘6066’, ‘6066’, ‘6066’

(6)注意事项:

  • pandas读取xlsx文件时,可能出现错误,这是需要另存为 xls文件
  • worksheet.close()报错时,大概率不是此处的错误,可能是 路径的问题
  • 写好内容格式后,一定要记得 添加格式
  • *在字符串的指定位置插入内容,这个思想很重要,具体实现见上述代码

如有疑问,欢迎评论区一起探讨。

Original: https://blog.csdn.net/qq_54185421/article/details/124239391
Author: Flying Bulldog
Title: 综合运用pandas和xlsxwriter解决所需问题(读取表格、更改数据、保存到新表格),附加一些注意事项

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/675950/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球