目录 专栏导读 背景 插入一列 插入多列 依条件修改单元格内容(2个条件以内) 依条件修改单元格内容(3个条件以上) 两列保持一致 结尾
专栏导读
🌸 欢迎来到Python办公自动化专栏—Python处理办公问题,解放您的双手 🏳️🌈 博客主页:请点击——> 一晌小贪欢的博客主页 👍 该系列文章专栏:请点击——>Python办公自动化专栏 求订阅 文章作者技术和水平有限,如果文中出现错误,希望大家能指正🙏 ❤️ 欢迎各位佬关注! ❤️
背景
大家都知道Python中处理Excel文件的办公库有很多,如:openpyxl、pandas、xlwings、xlrd 这些我之前都有介绍过,还专门写(水)了一篇文章测试他们的读取时间,大家没看过的可以前去考古一下,点我直达 选择pandas是因为读取的效率比openpyxl高一点,有时候我们想在pandas读取Excel时在某列插入几列,或者是修改单元格内的数据时,会经常忘记怎么用,我来记录一下,大家可以收藏一下
插入一列
如果还没有安装的同学,可以先安装一下 pip install pandas 首先我们创建一个Excel文件作为测试数据,表头随便写一下
假设我需要在B列后 面插入一列,表头名为【爱好】 代码如下 因为B列为第2列,所以参数:loc=2, 表头名参数:column='爱好' 填充值参数:value=None(空值)
import pandas as pddef test ( ) : df = pd. read_excel( '测试数据.xlsx' ) df. insert( loc= 2 , column= '爱好' , value= None ) df. to_excel( '结果.xlsx' , index= False ) test( )
插入多列
假设我需要在D列(班级)后 面插入5列,表头名为【列1,列2,列3,列4,列5】 代码如下 参数如上,相同的
import pandas as pddef test ( ) : df = pd. read_excel( '测试数据.xlsx' ) for col_num in range ( 4 , 9 ) : df. insert( loc= col_num, column= f'列 { col_num- 3 } ' , value= None ) df. to_excel( '结果.xlsx' , index= False ) test( )
依条件修改单元格内容(2个条件以内)
如果A列【学号】<10,则E列【列1】填写:是;否则填写:否,代码如下
import pandas as pddef test ( ) : df = pd. read_excel( '测试数据.xlsx' ) for col_num in range ( 4 , 9 ) : df. insert( loc= col_num, column= f'列 { col_num- 3 } ' , value= None ) df[ '列1' ] = df[ '学号' ] . apply ( lambda x: '是' if x < 10 else '否' ) df. to_excel( '结果.xlsx' , index= False ) test( )
依条件修改单元格内容(3个条件以上)
如果A列【学号】<5,则E列【列1】填写:是; 如果A列【学号】<10,则E列【列1】填写:否; 否则填写:X, 代码如下 df['修改的列'] = df['条件列'].apply(调用函数名)
import pandas as pddef test ( ) : df = pd. read_excel( '测试数据.xlsx' ) def modify_value ( x) : if x < 5 : return '是' elif x < 10 : return '否' else : return 'x' for col_num in range ( 4 , 9 ) : df. insert( loc= col_num, column= f'列 { col_num- 3 } ' , value= None ) df[ '列1' ] = df[ '学号' ] . apply ( modify_value) df. to_excel( '结果.xlsx' , index= False ) test( )
两列保持一致
import pandas as pddef test ( ) : df = pd. read_excel( '测试数据.xlsx' ) def modify_value ( x) : if x < 5 : return '是' elif x < 10 : return '否' else : return 'x' for col_num in range ( 4 , 9 ) : df. insert( loc= col_num, column= f'列 { col_num- 3 } ' , value= None ) df[ '列1' ] = df[ '学号' ] . apply ( modify_value) df[ '列4' ] = df[ '列1' ] df. to_excel( '结果.xlsx' , index= False ) test( )
结尾
希望对大家有帮助
致力于办公自动化的小小程序员一枚
都看到这了,关注+点赞+收藏=不迷路!!
如果你想知道更多关于Python办公自动化的知识各位佬给个关注吧!