Python常见用法一、PandasDataFrame数据结构 DataFrame是一个表格型的数据结构,它含有一组有序的列,每列可以是不同的值类型(数值、字符串、布尔型值)。DataFrame既有行索引也有列索引,它可以被看做由Series组成的字典(共同用一个索引)。 1。1创建1。1。1使用列表创建data〔〔Google,10〕,〔Runoob,12〕,〔Wiki,13〕〕dfpd。DataFrame(data,columns〔Site,Age〕)print(df)复制代码1。1。2使用ndarrays创建data{Site:〔Google,Runoob,Wiki〕,Age:〔10,12,13〕}dfpd。DataFrame(data)print(df)复制代码1。1。3使用字典创建data〔{a:1,b:2},{a:5,b:10,c:20}〕dfpd。DataFrame(data)print(df)复制代码1。2读取1。2。1df。loc〔idx〕data{calories:〔420,380,390〕,duration:〔50,40,45〕}数据载入到DataFrame对象dfpd。DataFrame(data)返回第一行print(df。loc〔0〕)返回第二行print(df。loc〔1〕)返回第一行和第二行print(df。loc〔〔0,1〕〕)复制代码data{calories:〔420,380,390〕,duration:〔50,40,45〕}dfpd。DataFrame(data,index〔day1,day2,day3〕)指定索引print(df。loc〔day2〕)复制代码1。2。2df。iterrows()将DataFrame迭代为(index,Series)对forindex,rowindf。iterrows():scorerow〔score〕namerow〔name〕复制代码1。2。3df。iteritems()将DataFrame迭代为(列名,Series)对forindex,rowindf。iteritems():scorerow〔score〕namerow〔name〕复制代码二、CSV操作2。1读取文件dfpd。readcsv(site。csv)tostring()用于返回DataFrame类型的数据,如果不使用该函数,则输出结果为数据的前面5行和末尾5行,中间部分以。。。代替print(df。tostring())复制代码2。1写入文件importpandasaspd三个字段name,site,agenme〔Google,Runoob,Taobao,Wiki〕st〔www。google。com,www。runoob。com,www。taobao。com,www。wikipedia。org〕ag〔90,40,80,98〕字典dict{name:nme,site:st,age:ag}dfpd。DataFrame(dict)保存dataframedf。tocsv(site。csv)复制代码importcsvwritercsv。writer(open(relaxlabelresults。csv,w),delimiter)writer。writerow(〔songid,relaxprob,relaxpred〕)writer。writerow(〔123,abc,dgf〕)复制代码三、字典操作3。1读取字典遍历key和valueforkey,valueindict。items():keys()遍历是无序的forkeyindict。keys():利用sorted()使keys有序遍历forkeyinsorted(dict。keys()):遍历valueforvalueindict。values():复制代码3。2写入字典dict〔a〕1直接赋值复制代码3。3移除key删除key值为a的元素,并赋值给变量value,若key不存在,则报错valued。pop(a)如果key不存在,则可以设置返回值valued。pop(a,404)复制代码四、conda创建虚拟环境4。1创建新环境condacreatenmypyenv(环境名称)python3。6复制代码4。2删除环境condaremovenmypyenvall复制代码4。3使用环境触发进入condaactivatemypyenv退出环境condadeactivate复制代码五、APScheduler5。1安装pipinstallapscheduler复制代码5。2简单示例fromapscheduler。schedulers。blockingimportBlockingSchedulerimporttime实例化一个调度器schedulerBlockingScheduler()defjob1():print(start)添加任务并设置触发方式为3s一次scheduler。addjob(job1,interval,seconds3)开始运行调度器scheduler。start()复制代码5。3三种trigger方式5。3。1date 只在某个时间点执行一次rundate(datetimestr)scheduler。addjob(myjob,date,rundatedate(2017,9,8),args〔〕)scheduler。addjob(myjob,date,rundatedatetime(2017,9,8,21,30,5),args〔〕)scheduler。addjob(myjob,date,rundate201790821:30:05,args〔〕)复制代码5。3。2interval 每隔一段时间执行一次weeks0days0hours0minutes0seconds0,startdateNone,enddateNone,timezoneNonescheduler。addjob(myjob,interval,hours2)scheduler。addjob(myjob,interval,hours2,startdate20179821:30:00,enddate2018061521:30:00)scheduler。scheduledjob(interval,idmyjobid,hours2)defmyjob():print(HelloWorld)复制代码5。3。3cron 使用同linux下crontab的方式(yearNone,monthNone,dayNone,weekNone,dayofweekNone,hourNone,minuteNone,secondNone,startdateNone,enddateNone,timezoneNone)sched。addjob(myjob,cron,hour3,minute30)sched。addjob(myjob,cron,hour5,minute30,enddate20171030)sched。scheduledjob(cron,idmyjobid,daylastsun)defsomedecoratedtask():print(Iamprintedat00:00:00onthelastSundayofeverymonth!)