修改Excel中某一列的值

一、背景

在日常处理数据时,常常会遇到excel中数据进行批量修改,而这些数据往往是没规律的,但是站在python的角度,他们又是有规律的。我在尝试开发抽奖系统的时候,想要展示给读者们更为详细的资料,但是又想保护名单中的人物,于是我想要批量更改excel中姓名中的其中一个字来实现。通过excel自身的功能,我并没有找到可以简便修改的方式,一想到本身就在学习,不如拿起python这个工具来解决。于是有了下面的方式:

二、代码实现(以切片方式为例,文章结尾附上另一种方式实现)

1、代码展示

import pandas as pd
file_path = 'D:\CSDN\花名册.xlsx'
data = pd.read_excel(file_path, header=0) #读取文件内容
for i in range(0, len(data.to_dict()['姓名'])):temp = data.to_dict()['姓名'][i][0] + '小' + data.to_dict()['姓名'][i][2:] data.loc[i, '姓名'] = temp
data.to_excel(file_path, index=False)

运行结果:

D:\pythonProject\venv\Scripts\python.exe D:\pythonProject\CSDN_Demo\pyqt5\0626.py
孙小雪
张小超
........
王小鹏
兰小
佟小阁Process finished with exit code 0

2、代码解析

1)panda函数

panda是核心数据分析支持库,提供快速、灵活、明确的数据结构。具体详细可查看panda的中文说明进行详细了解:https://www.pypandas.cn/docs/getting_starte

import pandas as pd
2)read_excel方法

read_excel是将excel文件读取到pandas DataFrame中,dataframe 是一个表格型的数据结构,它含有一组有序的列,每列可以是不同的值类型(数值、字符串、布尔型值)。

①文件路径

②文件内容

③通过read_excel获取文件内容
import pandas as pdfile_path = 'D:\CSDN\花名册.xlsx' #文件路径
data = pd.read_excel(file_path, header=0) #header=0 指从第一行开始读取数据(id=0)
print(data)

运行结果:

D:\pythonProject\venv\Scripts\python.exe D:\pythonProject\CSDN_Demo\pyqt5\0626.py 编号   姓名
0    1  孙大雪
1    2  张大超
2    3  孙大宇
3    4  刘大辉
4    5  钱大飞
..  ..  ...
59  60  何大彤
60  61  刘大鸿
61  62  王大鹏
62  63   兰大
63  64  佟大阁[64 rows x 2 columns]Process finished with exit code 0

这样得到的data数据格式为<class 'pandas.core.frame.DataFrame'>与我们之前说的是一致的。

3)data.to_dict()方法

上面我们通过read_excel将数据取出来,但是我想对数据处理,上面的数据格式我并不了解,于是将数据格式转化为我们熟悉的格式:字典,来帮助我们进行下一步操作:

①代码实现
import pandas as pdfile_path = 'D:\CSDN\花名册.xlsx'
data = pd.read_excel(file_path, header=0)
print(data.to_dict())
print(type(data.to_dict()))

运行结果:

D:\pythonProject\venv\Scripts\python.exe D:\pythonProject\CSDN_Demo\pyqt5\0626.py
{'编号': {0: 1, 1: 2, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 30: 31, 31: 32, 32: 33, 33: 34, 34: 35, 35: 36, 36: 37, 37: 38, 38: 39, 39: 40, 40: 41, 41: 42, 42: 43, 43: 44, 44: 45, 45: 46, 46: 47, 47: 48, 48: 49, 49: 50, 50: 51, 51: 52, 52: 53, 53: 54, 54: 55, 55: 56, 56: 57, 57: 58, 58: 59, 59: 60, 60: 61, 61: 62, 62: 63, 63: 64}, '姓名': {0: '孙大雪', 1: '张大超', 2: '孙大宇', 3: '刘大辉', 4: '钱大飞', 5: '叶大成', 6: '王大琪', 7: '周大成', 8: '江大', 9: '史大霜', 10: '张大源', 11: '陈大', 12: '范大俊', 13: '邹大文', 14: '郭大阳', 15: '李大齐', 16: '高大阳', 17: '贾大烨', 18: '贺大玉', 19: '杨大如', 20: '刘大春', 21: '姜大兆', 22: '鄂大东', 23: '刘大', 24: '李大宇', 25: '荣大惠', 26: '杜大萌', 27: '李大', 28: '郑大阡', 29: '谭大', 30: '贾大丽', 31: '荀大', 32: '郑大希', 33: '黄大然', 34: '岳大明', 35: '陶大岩', 36: '王大', 37: '王大旭', 38: '李大儒', 39: '汤大芸', 40: '文大', 41: '李大鹏', 42: '葛大杰', 43: '胡大鉴', 44: '蒋大帆', 45: '曾大杰', 46: '陈大文', 47: '陈大宇', 48: '张大铭', 49: '上大裕博', 50: '何大豪', 51: '张大洳', 52: '杨大淇', 53: '黄大', 54: '张大杰', 55: '李大洋', 56: '何大璐', 57: '谭大大', 58: '张大初', 59: '何大彤', 60: '刘大鸿', 61: '王大鹏', 62: '兰大', 63: '佟大阁'}}
<class 'dict'>Process finished with exit code 0
②数据应用

既然我们把数据转换为了字典类型,那我们尝试通过字典的方式将数据提取出来:

import pandas as pdfile_path = 'D:\CSDN\花名册.xlsx'
data = pd.read_excel(file_path, header=0)
print(data.to_dict()['姓名'][1]) #在这里加上了两个索引['姓名'][1],前面是将姓名这列提取出来,后面的索引是具体到第几个名字。
print(type(data.to_dict()))

运行结果:

D:\pythonProject\venv\Scripts\python.exe D:\pythonProject\CSDN_Demo\pyqt5\0626.py
张大超
<class 'dict'>Process finished with exit code 0
4)字符串替换

在这里我采用的是切片的方式,进行指定位置的字符更换,当然还有其他方法进行处理,具体可参考此文章:解决:TypeError: ‘str’ object does not support item assignment 的问题。

5)data.loc[rows,columns]

data.loc[i, '姓名']代表索引行与列,获取到具体的值后就可以进行处理。
当然不采用data.loc[i, '姓名']也可以,直接利用上面的一样可以实现:data.to_dict()['姓名'][i],秉持着学习过程中掌握越多知识越好的原则,在这里我就采用data.loc[i, '姓名']的方式了。

①代码示例
import pandas as pdfile_path = 'D:\CSDN\花名册.xlsx'
data = pd.read_excel(file_path, header=0)
print(data.to_dict()['姓名'][1])
data.loc[1, '姓名']='张小超'
print(data.to_dict()['姓名'][1])

运行结果:

D:\pythonProject\venv\Scripts\python.exe D:\pythonProject\CSDN_Demo\pyqt5\0626.py
张大超
张小超Process finished with exit code 0
6)to_excel()方法

上面讲了读入文件内容,那么当我们修改完数据后,也是需要将修改后的数据写入文件中,这样才能实现我们的目的。
to_excel():将数据从dataframe导出到excel中

①原文件内容

②代码示例
import pandas as pdfile_path = 'D:\CSDN\花名册.xlsx'
data = pd.read_excel(file_path, header=0)
print(data.to_dict()['姓名'][1])
data.loc[1, '姓名']='张小超'
data.to_excel(file_path, index=False) #index代表不需要写入索引
print(data.to_dict()['姓名'][1])

运行结果:

D:\pythonProject\venv\Scripts\python.exe D:\pythonProject\CSDN_Demo\pyqt5\0626.py
张大超
张小超Process finished with exit code 0

index=True时结果如下:

③更改后的文件内容

3、总结

通过上面的分步解析,想必大家对上面的代码有了更清晰的了解,接下来我们实际运行一下。

1)代码附上
import pandas as pdfile_path = 'D:\CSDN\花名册.xlsx'
data = pd.read_excel(file_path, header=0)
for i in range(0, len(data.to_dict()['姓名'])): #len(data.to_dict()['姓名'] 获取行数,遍历每一个姓名temp = data.to_dict()['姓名'][i][0] + '小' + data.to_dict()['姓名'][i][2:] #data.to_dict()['姓名'][i][0]:['姓名']代表获取姓名这列,[i]代表获取的具体单一姓名,[0]代表姓名的第一个字,[2:]代表从第二个字开始到最后data.loc[i, '姓名'] = tempdata.to_dict()['姓名'][i]= temp
data.to_excel(file_path, index=False)
2)运行结果展示

三、附录

在这里给大家贴上另一种方式,仅供大家参考:

import pandas as pdfile_path = 'D:\CSDN\花名册.xlsx'
data = pd.read_excel(file_path, header=0)
for i in range(0, len(data.to_dict()['姓名'])):middle = data.to_dict()['姓名'][i][1]temp = data.to_dict()['姓名'][i]temp = temp.replace(middle, '大')data.loc[i, '姓名'] = tempprint(temp)
data.to_excel(file_path, index=False)

四、结论

举一反三往往会让我们收获更多的知识,在学习的路上不要嫌弃麻烦,知识的汲取需要点滴实现。加油!

Python修改Excel中某一列的值相关推荐

  1. python excel增加一列_(用Python修改excel中一列数据)python新增一列

    python怎么从excel中读取数据? ⒈ #import παέτο import xlrd #Ρύθμι διαδρής path='C:\\Users\\jyjh\\Desktop\\data ...

  2. 「Excel技巧」Excel中根据某列的值去汇总另外一列的值

    「Excel技巧」Excel中根据某列的值去汇总另外一列的值 在Excel表格中输入数据,需要根据component列的值分别汇总July列的值. 1.选中单元格区域并点击"insert&q ...

  3. 用python对excel中的两列数据进行排列组合

    需求:对一个excel中的两列数据进行排列组合,并将数据追加写入到表格中. 背景:完全不懂代码的小白,所以,最后将代码打包生成可执行文件,方便操作. 下面直接上代码. import pandas as ...

  4. 实例3:python 删除excel中的多余列

    实例所用资源:https://download.csdn.net/download/weixin_46623003/16096875 一.数据情况 1.原数据 1.xlsx和2.xlsx的内容如下,3 ...

  5. element UI 修改 table 中某一列的值

    (1)el-table 中增加 :cell-style 属性 <el-table:cell-style="columnStyle":default-sort="{p ...

  6. python3读取excel某一列_怎样用python,读取excel中的一列数据!python读取excel某一列数据...

    Python 如何循环读取csv或者excel中的一列数据,写入到中搜索 是可以 a.csv复制到 b.csv中 import csv def foo(): with open('a.csv', 'r ...

  7. excel 统计某一列各个值的个数

    在Excel中如何计算某列相同值的个数? [ 标签: excel, 个数, xsl ] 计算A列相同值的单元格的个数,结果在B列那样显示出来,怎么使用函数? 问题补充  2010-03-24 11:1 ...

  8. python批量处理excel文本改为数字_Python批量修改Excel中的文件内容

    import os import xlrd from xlutils.copy import copy def base_dir(filename=None): return os.path.join ...

  9. python表格多列合并_python 合并excel表格数据-如何用python从excel中同时提取两个列的数据,并生成dict(用xlrd)...

    用Python导出工程文件两个子页里的数据成为两个excel表格,但我想把它合并成个一个excel表格的两个sheet 可以采用一些操作Excel块去实现,比如xlrd.xlwt.openpyxl.x ...

最新文章

  1. 【微信支付】微信端的手机网页支付 开发流程
  2. asp.net日历控件My97DatePicker下载地址
  3. 判断数正负(信息学奥赛一本通-T1039)
  4. Git 相关使用命令
  5. VS2005 TS SP1压缩整合完整版BT下载
  6. 腾讯宣布五年5000亿投入计划,发力新基建(2020年5月)
  7. java中的几个“区别”总结
  8. 7-4 输出菱形图案 (5 分)
  9. Java中的并发工具类:Semaphore基本理解和底层实现
  10. 45. 将脚本放在底部(6)
  11. Angular——Angular 教程
  12. Linux编译工具:gcc入门
  13. 顶级域名、一级域名、二级域名与IP
  14. 银行柜员绩效考核案例
  15. 动画开发之PIXI开发
  16. 雷霆战机android代码,雷霆战机代码
  17. html的滚动条样式,css滚动条样式
  18. 【嵌入式】关于IAP+Xmodem从外部接收bin文件对芯片进行升级学习记录
  19. 在Java中,每个try块后面都必须紧跟catch块吗?
  20. 3d游戏建模基础教程:3D建模应用领域和四种常用建模方法

热门文章

  1. Educational Codeforces Round 143 (Rated for Div. 2) 感想
  2. 无人驾驶、人脸识别……人工智能时代正在到来,我们该如何应对
  3. D435i激光发射器要不要关
  4. mtk android 11接打电话默认免提功能
  5. 面对信息化的冲击,传统医疗门诊管理系统该如何创新?
  6. c语言输入10个整数求平均数,C语言输入任意个数求平均数
  7. easyAR unity3d识别拍照图片
  8. VMD-SSA-LSTM基于变分模态分解和麻雀算法优化长短期记忆网络的时间序列预测MATLAB代码(含LSTM、VMD-LSTM、VMD-SSA-LSTM等模型的对比)。
  9. 皮一皮:戒网瘾专用手机...
  10. Struts框架之转发和重定向