代码如下:
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 |