在excel里面用ctrl+F或者substitute()函数可以实现查找和替换操作。

但这次用python试试读取excel并且查找和替换特定元素。简单整理了几种方式。

情形1 在没有重复的情况下直接用replace

#导入pandas库
import pandas as pd
from pandas import DataFrame

#读取excel数据
path = 'D:\A USTC\lesson\Financial data analysis\问卷1.xlsx'
data1 = pd.read_excel(path, sheet_name='Sheet1', dtype=object)

用data.head()可以看一下导入表格的内容,如下图:

 目的:要实现把“1、企业成立的年限是”列的1、2、3、4对应为“2年以内(不含2年)”、“2-5年”、“6-10年”、“11年以上”。

由于这里其他列不存在重复的1,2,3,4,用replace函数整个表格数据进行替换。

#进行查找和替换
data2=data1.replace(1,'2年以内(不含2年)')
data3=data2.replace(2, '2-5年')
data4=data3.replace(3, '6-10年')
data5=data4.replace(4, '11年以上')

 看一下替换之后“1、企业成立的年限是”列数据已经完成修改,如下图:

 最后,把数据导出到新的excel。

#输出数据为excel
DataFrame(data).to_excel(r'D:\A USTC\lesson\Financial data analysis\问卷2.xlsx', sheet_name='Sheet1', index=False, header=True)

情形2 每列数据都有重复情况替换特定列

方法1 简单的赋值语句

重新导入并读取“问卷.xlsx"数据。 

#导入库并读取数据
import pandas as pd
from pandas import DataFrame
path = 'D:\A USTC\lesson\Financial data analysis\问卷.xlsx'
data = pd.read_excel(path, sheet_name='Sheet1', dtype=object)
data.head()

输入data看一下读取的数据。

 用赋值语句进行替换,对指定列进行操作而不是对整个表格操作。

#替换特定列特定数字为对应信息,用赋值语句
data['1、企业成立的年限是:'][data['1、企业成立的年限是:'] == 1] = '2年以内(不含2年)'
data['1、企业成立的年限是:'][data['1、企业成立的年限是:'] == 2] = '2-5年'
data['1、企业成立的年限是:'][data['1、企业成立的年限是:'] == 3] = '6-10年'
data['1、企业成立的年限是:'][data['1、企业成立的年限是:'] == 4] = '11年以上'

看一下替换后结果:

替换完成,按情形一中代码写入新的excel即可。 

2.方法2 用if筛选条件和赋值语句

 前述代码不再重复,遍历第i行第6列数据进行查找替换,得到结果同上。

 for i in range(108):
    if data.iloc[i,6]==1:
        data.iloc[i,6]='2年以内(不含2年)'
    elif data.iloc[i,6]==2:
        data.iloc[i,6]='2-5年'
    elif data.iloc[i,6]==3:
        data.iloc[i,6]='6-10年'
    elif data.iloc[i,6]==4:
        data.iloc[i,6]='11年以上'

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐