python中chs_python学习笔记

part1:数据类型

(1)multi-index的问题,这个是接触python以来自己想办法解决的第一个问题。

(2)python中的空值:对整体的series或Dataframe判断是否未空,用isnull();

对单独的某个值判断,可以用 np.isnan()python 判断为空nan, null​blog.csdn.net

(3)日期、时间变量

part2:数据处理

(1).csv文件

<1>读.csv文件:total_data = pd.read_csv('D:/00424582_WorkDairyFrom2018/EnglishPath4Coding/survival_data/ungroup.csv') #,encoding = 'gb18030'

读的时候有遇到报错,需要把文件路径和.csv文件内容(字段名?)都改成不含中文的。

<2> 写到.csv文件:MAE.to_csv('data/RstBatch/summRst_V2.0/MAE.csv',header=1,index=1)

names.to_csv('data/RstBatch/summRst_V2.0/names.csv',header=1,index=1)

amt.to_csv('data/RstBatch/summRst_V2.0/amt.csv',header=1,index=1)

(2).xlsx文件:

<1>读.xlsx文件:https://blog.csdn.net/index20001/article/details/73844576​blog.csdn.net

上面读入是by cell或者by row的,下面依次讲了几个对象的处理方法:python操作excel之openpyxl​www.jianshu.com

整张sheet保存成dict:https://blog.csdn.net/JNingWei/article/details/80055630​blog.csdn.net

前面写的xlrd包、openpyxl包都是by cell、by row地处理,

<2>现在习惯用的.xlsx文件读写语句:

import openpyxl

读:

data=pd.read_excel('D:\\00424582_SCM\\成本管理\\仓储量价模型\\多个仓库试算结果汇总\\0530\\量价模型试算'+warehouse+'.xlsx',flag)

写:

xlsx_output='D:\\00424582_SCM\\成本管理\\仓储量价模型\\多个仓库试算结果汇总\\0530\\汇总结果.xlsx'

writer=pd.ExcelWriter(xlsx_output)

inf_sum.to_excel(writer, sheet_name=warehouse, index=True)

inf_sum2.to_excel(writer, sheet_name=warehouse2, index=True)

另一种写的方法【更方便,但似乎不能写进多个sheet】:

total_dis.to_excel(r"total_dis.xlsx",index=False)

(3)将变量a赋值给变量b,后续对变量a的任何操作,b也会同步被修改。目前用copy.copy解决。

(4)goupby语句:

joined_des=pd.DataFrame(FCST_D_2join['CHS_DESCRIPTION'].groupby([FCST_D_2join['INVOICE_NUMBER'],FCST_D_2join['set_ID']]).sum()).reset_index()

后面的.reset_index()比较方便,之前自己总是用:

each_invoice=sample201912_D['inSet_ID'].astype(int).groupby([sample201912_D['INVOICE_NUMBER'],sample201912_D['set_ID']]).max()

each_invoice=pd.DataFrame(each_invoice)

each_invoice['INVOICE_NUMBER']=each_invoice.index.get_level_values('INVOICE_NUMBER')

each_invoice['set_ID']=each_invoice.index.get_level_values('set_ID')

非常麻烦,自从学会.reset_index()就再不用了。

(5)DF的切片:pandas取dataframe特定行/列 - nxf_rabbit75 - 博客园​www.cnblogs.com

part3:调包

part4:工程化

(1)project结构

在pycharm中点open,点到代码所在文件夹就可以了,不要再往下点到脚本文件。

(2)API

消息队列、API;API的部署和调用。依赖于公司内部平台完成这些事情(aiLab、MQS、API中心,依赖HIS),另外postman、GIT。JSON的处理。

part5:面向对象

part6:小工具

part7:小tips

(1)新开文件,开头

# -*- coding: utf-8 -*-

"""

Created on Wed Dec 18 10:57:35 2019

@author: t00424582

"""

其中# -*- coding: utf-8 -*-的作用

(2)顶格写#%%可以用于分块,这是在spyder里面,pycharm不能。

(3)__init__(self,)的前后是2个下划线,不是一个,写成一个的话,报错可baidu it。

(4)缩进非常重要。if __name__ == "__main__":这一句可有可无,但是缩进要搞OK。

(5)reindex

(6)jupyter notebook和jupyterlab的快捷方式:

一般打开这2者,是用命令行cmd,输入命令jupyter notebook、jupyter lab可分别打开它们,但是打开后所在的文件夹如下图,要把需要的文件再搬到这里来,不方便:

可以做一个快捷文件(.bat文件),放在目标工作文件夹下,每次双击运行.bat快捷文件就可以在此文件夹下启动jupyter notebook或者jupyter lab了,.bat文件中的内容分别如下:

(7)x代表某一行时:.apply(lambda x: ,axis=1)总是忘记写axis=1,如果x只代表其中某一列就不需要。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值