实习生日记0712

1、去掉nan和NaT

 输出的部份表格如图:nan是np模块的数据空缺;NaT是pd模块的数据空缺,是时间缺失值。想要在数据缺失部分显示空白,但是 fillna('')没有用,后来找到了如下代码:

import numpy as np
# 遍历列,去掉nan
for i in df.columns:
    df[i] = np.where(df[i] == 'nan', np.nan, df[i]) #强制转换
df.fillna('')

# 去掉NaT
## 如果日期列是str,先转换成datetime格式,然后用apply()函数,这里的意思是如果不为空则转换,否则为''
df['日期'] = pd.to_datetime(df['日期']).apply(lambda x: x.strftime('%Y-%m-%d')if not pd.isnull(x) else '') 

## 如果已经是datetime格式了,直接apply即可

2.excel输出格式

import xlrd
import xlwt
def format(path_tempt, path_out):   
    # 读入工作表
    data0 = xlrd.open_workbook(path_tempt)
    sheet0 = data0.sheet_by_name('Sheet1')
    data1 = copy(data0)
    sheet1 = data1.get_sheet(0) #表示get第一张工作表
    
    #设置header格式
    font = xlwt.Font()  #初始化
    style0 = xlwt.XFStyle()   #初始化
    font.bold = True  #加粗
    font.height = 220  #设置字体11号
    font.name = '宋体'
    style0.font = font
    
    
    
    # 设置格式
    style1 = xlwt.XFStyle()
    font = xlwt.Font()
    font.name = '宋体'
    font.bold = True
    font.height = 220
    
    pattern = xlwt.Pattern()
    pattern.pattern = xlwt.Pattern.SOLID_PATTERN
    pattern.pattern_fore_colour = 22  # 灰色填充
    style1.font = font
    style1.pattern = pattern
    
    
    # 写入单元格
    for j in range(len(df_change.columns)):
        sheet1.write(0,j,sheet0.cell(0,j).value, style0)  # sheet.write(row, column, value, style)
        
    for i in range(14):
        sheet1.write(0,i,sheet0.cell(0,i).value,style1)
        
    data1.save(path_tempt)

def format(df_change, path_out)

3. 文件重命名

上面的tempt是过渡文件,因为我想要更改工作表的名字,但是没有找到怎么用workbook改,最后是用pd.to_excel解决的

import os
def sheet_rename(path_tempt, path_out, out_name):
    df_sheet = pd.read_excel(path_tempt)
    df_sheet.to_excel(path_out, out_name, index = False)  # 更改out_name)
    
    # 删除过渡文件
    try:
        os.remove(path_tempt)
    except:
        pass

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

砂锅咸鱼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值