xlwt+xlrd配合使用修改excel表格

代码如下:

import pandas as pd
import xlwt
import xlrd
#写入
work_book = xlwt.Workbook(encoding='utf-8')
ws = work_book.add_sheet('Sheet2')


path="./data1.xls"

#文本编码格式
df = pd.read_excel(path)
#读取文件
print(df)

#--------------------下面是获取原始数据行列-----------------------------------------------
wb=xlrd.open_workbook(path)
sheets=wb.sheet_by_name('Sheet1')
# print("sheets"=)
row =sheets.nrows
column=sheets.ncols
#-------------------------------------------------------------------


for i in range(row):
    rowdata=sheets.row_values(i)#i行的list
#----------------------0,1,3列保持不变--------------------------------
    ws.write(i, 0, label = rowdata[0])
    ws.write(i, 1, label = rowdata[1])
    ws.write(i, 3, label = rowdata[3])
#----------------------清洗第2列--------------------------------
    # for j in range(column):
    if rowdata[2]=='':
            ws.write(i, 2, label = 'NaN')
            # rowdata[j]="NaN"
    # print(type(rowdata[4]))
    else:
        ws.write(i, 2, label = rowdata[2])
#------------------------------------------------------
    # 第4列存在float,也存在str
    print("最后一列数据=",rowdata[4])
    try:
        if rowdata[4]<=0:
        	ws.write(i, 4, label = 'NaN')#修改
        else:
        	ws.write(i, 4, label = rowdata[4])#保持原样
    except:
    	ws.write(i, 4, label = rowdata[4])#保持原样
    #             # rowdata[j]="NaN"
    #             ws.write(i, 4, label = 'NaN')
work_book.save('result.xls')  
2 70 1 2007/1/1 2007/1/30
2 72 1 2007/1/1 2007/1/1
2 73 1 2007/1/1 2007/1/14
2 73 1 2007/1/1 2007/1/13
2 73 1 2007/1/1 2007/1/8
2 75   2007/1/1 2007/3/5
2 76 1 2007/1/1 2007/8/10
2 77 3 2007/1/1 2007/2/17
2 77 3 2007/1/1 -652851
2 77   2007/1/1 2007/11/29
2 80 3 2007/1/1 2007/1/10
2 82 3 2007/1/1 2007/2/6
2 83 3 2007/1/1 2007/1/18
2 87 3 2007/1/1 2007/2/8
2 90 1 2007/1/1 2007/2/26
1 39   2007/1/1 2007/1/30

猜你喜欢

转载自blog.csdn.net/appleyuchi/article/details/106832424