首次公开,用了三年的pandas速查表
导读:Pandas是一个强大的分析结构化数据的工具集,它的使用基础是Numpy(提供高性能的矩阵运算),用于数据挖掘和数据分析,同时也提供数据清洗功能。
本文收集了Python数据分析库Pandas及相关工具的日常使用方法,备查,持续更新中。
作者:李庆辉
来源:华章科技
缩写说明:df:任意的PandasDataFrame对象s:任意的PandasSeries对象注:有些属性方法df和s都可以使用
推荐资源:pandas在线教程https:www。gairuo。comppandastutorial书籍《深入浅出Pandas:利用Python进行数据处理与分析》01环境搭建https:mirrors。tuna。tsinghua。edu。cnanacondaarchivehttps:mirrors。tuna。tsinghua。edu。cnanacondaminicondahttps:docs。conda。ioenlatestminiconda。htmlexcel处理相关包xlrdopenpyxlxlsxwriter解析网页包requestslxmlhtml5libBeautifulSoup4计算包:scipypipinstalljupyterpandasmatplotlib国外网络慢,可指定国内源快速下载安装pipinstallpandasihttps:pypi。tuna。tsinghua。edu。cnsimple
Conda多Python版本环境:创建新环境,环境名称,python版本condacreatenpy39python3。9删除环境condaremovenpy39all进入、激活环境condaactivatepy39退出环境condadeactivate查看所有虚拟环境及当前环境condainfoe02JupyterNotebook快捷键
启动JupyterNotebook:jupyternotebook
快捷键及功能::代码提示ShiftEnter:执行本行并定位到新增的行ShiftTab(13次):查看函数方法说明D,D:双击D删除本行AB:向上下增加一行MY:Markdown代码模式03导入库包importpandasaspd最新为1。4。1版本(20220212)importnumpyasnpimportmatplotlib。pyplotaspltimportseabornassnsmatplotlibinline04导入数据从CSV文件导入数据pd。readcsv(file。csv,name〔列名,列名2〕)从限定分隔符的文本文件导入数据pd。readtable(filename,header0)Excel导入,指定sheet和表头pd。readexcel(file。xlsx,sheetname表1,header0)从SQL表库导入数据pd。readsql(query,connectionobject)从JSON格式的字符串导入数据pd。readjson(jsonstring)解析URL、字符串或者HTML文件,抽取其中的tables表格pd。readhtml(url)从你的粘贴板获取内容,并传给readtable()pd。readclipboard()从字典对象导入数据,Key是列名,Value是数据pd。DataFrame(dict)导入字符串fromioimportStringIOpd。readcsv(StringIO(webdata。text))05导出输出数据导出数据到CSV文件df。tocsv(filename。csv)导出数据到Excel文件df。toexcel(filename。xlsx,indexTrue)导出数据到SQL表df。tosql(tablename,connectionobject)以Json格式导出数据到文本文件df。tojson(filename)其他df。tohtml()显示HTML代码df。tomarkdown()显示markdown代码df。tostring()显示格式化字符df。tolatex(indexFalse)LaTeXtabular,longtabledf。todict(split)字典,格式listseriesrecordsindexdf。toclipboard(sep,,indexFalse)存入系统剪贴板将两个表格输出到一个excel文件里面,导出到多个sheetwriterpd。ExcelWriter(new。xlsx)df1。toexcel(writer,sheetname第一个,indexFalse)df2。toexcel(writer,sheetname第二个,indexFalse)writer。save()必须运行writer。save(),不然不能输出到本地写法2withpd。ExcelWriter(new。xlsx)aswriter:df1。toexcel(writer,sheetname第一个)df2。toexcel(writer,sheetname第二个)用xlsxwriter导出支持合并单元格、颜色、图表等定制功能https:xlsxwriter。readthedocs。ioworkingwithpandas。html06创建测试对象创建20行5列的随机数组成的DataFrame对象pd。DataFrame(np。random。rand(20,5))从可迭代对象mylist创建一个Series对象pd。Series(mylist)增加一个日期索引df。indexpd。daterange(1900130,periodsdf。shape〔0〕)创建随机数据集dfpd。util。testing。makeDataFrame()创建随机日期索引数据集dfpd。util。testing。makePeriodFrame()dfpd。util。testing。makeTimeDataFrame()创建随机混合类型数据集dfpd。util。testing。makeMixedDataFrame()07查看、检查、统计、属性df。head(n)查看DataFrame对象的前n行df。tail(n)查看DataFrame对象的最后n行df。sample(n)查看n个样本,随机df。shape查看行数和列数df。info()查看索引、数据类型和内存信息df。describe()查看数值型列的汇总统计df。dtypes查看各字段类型df。axes显示数据行和列名df。mean()返回所有列的均值df。mean(1)返回所有行的均值,下同df。corr()返回列与列之间的相关系数df。count()返回每一列中的非空值的个数df。max()返回每一列的最大值df。min()返回每一列的最小值df。median()返回每一列的中位数df。std()返回每一列的标准差df。var()方差s。mode()众数s。prod()连乘s。cumprod()累积连乘,累乘df。cumsum(axis0)累积连加,累加s。nunique()去重数量,不同值的量df。idxmax()每列最大的值的索引名df。idxmin()最小df。columns显示所有列名df。team。unique()显示列中的不重复值查看Series对象的唯一值和计数,计数占比:normalizeTrues。valuecounts(dropnaFalse)查看DataFrame对象中每一列的唯一值和计数df。apply(pd。Series。valuecounts)df。duplicated()重复行df。dropduplicates()删除重复行setoption、resetoption、describeoption设置显示要求pd。getoption()设置行列最大显示数量,None为不限制pd。options。display。maxrowsNonepd。options。display。maxcolumnsNonedf。col。argmin()最大值〔最小值。argmax()〕所在位置的自动索引df。col。idxmin()最大值〔最小值。idxmax()〕所在位置的定义索引累计统计ds。cumsum()前边所有值之和ds。cumprod()前边所有值之积ds。cummax()前边所有值的最大值ds。cummin()前边所有值的最小值窗口计算(滚动计算)ds。rolling(x)。sum()依次计算相邻x个元素的和ds。rolling(x)。mean()依次计算相邻x个元素的算术平均ds。rolling(x)。var()依次计算相邻x个元素的方差ds。rolling(x)。std()依次计算相邻x个元素的标准差ds。rolling(x)。min()依次计算相邻x个元素的最小值ds。rolling(x)。max()依次计算相邻x个元素的最大值08数据清理df。columns〔a,b,c〕重命名列名df。columnsdf。columns。str。replace(,)列名空格换下划线df。loc〔df。AAA5,〔BBB,CCC〕〕555替换数据df〔pf〕df。siteid。map({2:小程序,7:M站})将枚举换成名称pd。isnull()检查DataFrame对象中的空值,并返回一个Boolean数组pd。notnull()检查DataFrame对象中的非空值,并返回一个Boolean数组df。drop(〔name〕,axis1)删除列df。drop(〔0,10〕,axis0)删除行deldf〔name〕删除列df。dropna()删除所有包含空值的行df。dropna(axis1)删除所有包含空值的列df。dropna(axis1,threshn)删除所有小于n个非空值的行df。fillna(x)用x替换DataFrame对象中所有的空值df。fillna(value{prov:未知})指定列的空值替换为指定内容s。astype(float)将Series中的数据类型更改为float类型df。index。astype(datetime64〔ns〕)转化为时间格式s。replace(1,one)用‘one’代替所有等于1的值s。replace(〔1,3〕,〔one,three〕)用one代替1,用three代替3df。rename(columnslambdax:x1)批量更改列名df。rename(columns{oldname:newname})选择性更改列名df。setindex(columnone)更改索引列df。rename(indexlambdax:x1)批量重命名索引重新命名表头名称df。columns〔UID,当前待打款金额,认证姓名〕df〔是否设置提现账号〕df〔状态〕复制一列df。loc〔:,::1〕列顺序反转df。loc〔::1〕行顺序反转,下方为重新定义索引df。loc〔::1〕。resetindex(dropTrue)09数据处理:Filter、Sort保留小数位,四舍六入五成双df。round(2)全部df。round({A:1,C:2})指定列df〔Name〕df。Name取列名的两个方法df〔df。indexJude〕按索引查询要用。indexdf〔df〔col〕0。5〕选择col列的值大于0。5的行多条件查询df〔(df〔team〕A)(df〔Q1〕80)df。utype。isin(〔老客,老访客〕)〕筛选为空的内容df〔df。order。isnull()〕类似SQLwhereindf〔df。team。isin(A,B)〕df〔(df。teamB)(df。Q117)〕df〔(df〔team〕A)(df〔Q1〕80)〕非,或df〔df。Name。str。contains(张)〕包含字符df。sortvalues(col1)按照列col1排序数据,默认升序排列df。col1。sortvalues()同上,sdf。sortvalues(col2,ascendingFalse)按照列col1降序排列数据先按列col1升序排列,后按col2降序排列数据df。sortvalues(〔col1,col2〕,ascending〔True,False〕)df2pd。getdummies(df,prefixt)将枚举的那些列带枚举转到列上s。setindex()。plot()多索引处理dd。setindex(〔utype,siteid,pday〕,inplaceTrue)dd。sortindex(inplaceTrue)按索引排序dd。loc〔新访客,2,20190622〕。plot。barh()loc中按顺序指定索引内容前100行,不能指定行,如:df〔100〕df〔:100〕只取指定行df1df。loc〔0:,〔设计师ID,姓名〕〕将ages平分成5个区间并指定labelsagesnp。array(〔1,5,10,40,36,12,58,62,77,89,100,18,20,25,30,32〕)pd。cut(ages,〔0,5,20,30,50,100〕,labels〔u婴儿,u青年,u中年,u壮年,u老年〕)dailyindex。difference(dfworkday。index)取出差别格式化df。index。name索引的名称strdf。columns。tolist()df。values。tolist()df。总人口。values。tolist()data。apply(np。mean)对DataFrame中的每一列应用函数np。meandata。apply(np。max,axis1)对DataFrame中的每一行应用函数np。maxdf。insert(1,three,12,allowduplicatesFalse)插入列(位置、列名、〔值〕)df。pop(class)删除列增加一行df。append(pd。DataFrame({one:2,two:3,three:4。4},index〔f〕),sortTrue)指定新列iris。assign(sepalratioiris〔SepalWidth〕iris〔SepalLength〕)。head()df。assign(ratelambdadf:df。ordersdf。uv)shift函数是对数据进行平移动的操作df〔增幅〕df〔国内生产总值〕df〔国内生产总值〕。shift(1)df。tshift(1)时间移动,按周期和上相同,diff函数是用来将数据进行移动之后与原数据差异数据,等于df。shift()dfdf〔增幅〕df〔国内生产总值〕。diff(1)留存数据,因为最大一般为数据池df。apply(lambdax:xx。max(),axis1)取best列中值为列名的值写到name行上df〔value〕df。lookup(df〔name〕,df〔best〕)s。where(s1,10)满足条件下数据替换(10,空为NaN)s。mask(s0)留下满足条件的,其他的默认为NaN所有值加1(加减乘除等)df1df。add(1)管道方法,链式调用函数,f(df)df。pipe(f)defgb(df,by):resultdf。copy()resultresult。groupby(by)。sum()returnresult调用df。pipe(gb,byteam)窗口计算2s为两秒df。rolling(2)。sum()在窗口结果基础上的窗口计算df。expanding(2)。sum()超出(大于、小于)的值替换成对应值df。clip(4,6)AB两列想加增加C列df〔C〕df。eval(AB)和上相同效果df。eval(CAB,inplaceTrue)数列的变化百分比s。pctchange(periods2)分位数,可实现时间的中间点df。quantile(。5)排名average,min,max,first,dense,默认averages。rank()数据爆炸,将本列的类列表数据和其他列的数据展开铺开df。explode(A)枚举更新status{0:未执行,1:执行中,2:执行完毕,3:执行异常}df〔taskStatus〕df〔taskStatus〕。apply(status。get)df。assign(金额0)新增字段df。loc〔(bar,two),A〕多索引查询df。query(i0bi1b)多索引查询方法2取多索引中指定级别的所有不重复值df。index。getlevelvalues(2)。unique()去掉为零小数,12。0012df。astype(str)。applymap(lambdax:x。replace(。00,))插入数据,在第三列加入两倍列df。insert(3,两倍,df〔值〕2)枚举转换df〔gender〕df。gender。map({male:男,female:女})增加本行之和列df〔Colsum〕df。apply(lambdax:x。sum(),axis1)对指定行进行加和collistlist(df)〔2:〕取请假范围日期df〔总天数〕df〔collist〕。sum(axis1)计算总请假天数对列求和,汇总df。loc〔colsum〕df。apply(lambdax:x。sum())按指定的列表顺序显示df。reindex(orderlist)按指定的多列排序df。reindex(〔col1,col5〕,axiscolumns)10数据选取df〔col〕根据列名,并以Series的形式返回列df〔〔col1,col2〕〕以DataFrame形式返回多列df。loc〔df〔team〕B,〔name〕〕按条件查询,只显示name列s。iloc〔0〕按位置选取数据s。loc〔indexone〕按索引选取数据df。loc〔0,A:B〕A到B字段的第一行df。loc〔2018:1990,第一产业增加值:第三产业增加值〕df。loc〔0,〔A,B〕〕d。loc〔位置切片,字段〕df。iloc〔0,:〕返回第一行,iloc只能是数字df。iloc〔0,0〕返回第一列的第一个元素dc。query(siteid8andutype老客)。head()可以andor迭代器及使用foridx,rowindf。iterrows():row〔id〕迭代器对每个元素进行处理df。loc〔i,链接〕fhttp:www。gairuo。comp{slug}。htmlforiindf。Name:print(i)迭代一个列按列迭代,〔列名,列中的数据序列S(索引名值)〕forlabel,contentindf。items():print(label,content)按行迭代,迭代出整行包括索引的类似列表的内容,可row〔2〕取forrowindf。itertuples():print(row)df。at〔2018,总人口〕按行列索引名取一个指定的单个元素df。iat〔1,2〕索引和列的编号取单个元素s。nlargest(5)。nsmallest(2)最大和最小的前几个值df。nlargest(3,〔population,GDP〕)df。take(〔0,3〕)指定多个行列位置的内容按行列截取掉部分内容,支持日期索引标签ds。truncate(before2,after4)将dataframe转成seriesdf。iloc〔:,0〕float(str(val)。rstrip())百分数转数字df。resetindex(inplaceTrue)取消索引11数据处理GroupBy透视df。groupby(col)返回一个按列col进行分组的Groupby对象df。groupby(〔col1,col2〕)返回一个按多列进行分组的Groupby对象df。groupby(col1)〔col2〕返回按列col1进行分组后,列col2的均值创建一个按列col1进行分组,并计算col2和col3的最大值的数据透视表df。pivottable(indexcol1,values〔col2,col3〕,aggfuncmax,asindexFalse)同上df。pivottable(index〔siteid,utype〕,values〔uvall,registnum〕,aggfunc〔max,mean〕)df。groupby(col1)。agg(np。mean)返回按列col1分组的所有列的均值按列将其他列转行pd。melt(df,idvars〔day〕,varnamecity,valuenametemperature)交叉表是用于统计分组频率的特殊透视表pd。crosstab(df。Nationality,df。Handedness)groupby后排序,分组agg内的元素取固定个数(df〔(df。pday20190101)〕。groupby(〔pday,name〕)。agg({uv:sum})。sortvalues(〔pday,uv〕,ascending〔False,False〕)。groupby(level0)。head(5)每天取5个页面。unstack()。plot())合并查询经第一个看(max,min,last,size:数量)df。groupby(结算类型)。first()合并明细并分组统计加总(max,mean,median,prod,sum,std,var,nunique),nunique为去重的列表df1df。groupby(by设计师ID)。agg({结算金额:sum})df。groupby(bydf。pf)。ip。nunique()groupbydistinct,分组去重数df。groupby(bydf。pf)。ip。valuecounts()groupby分组去重的值及数量df。groupby(name)。agg(〔sum,median,count〕)12数据合并合并拼接行将df2中的行添加到df1的尾部df1。append(df2)指定列合并成一个新表新列ndf(df〔提名1〕。append(df〔提名2〕,ignoreindexTrue)。append(df〔提名3〕,ignoreindexTrue))ndfpd。DataFrame(ndf,columns(〔姓名〕))将df2中的列添加到df1的尾部df。concat(〔df1,df2〕,axis1)合并文件的各行df1pd。readcsv(111。csv,sep)df2pd。readcsv(222。csv,sep)excellist〔df1,df2〕resultpd。concat(excellist)。fillna()〔:〕。astype(str)resultpd。concat(excellist)〔〕result。toexcel(333。xlsx,indexFalse)合并指定目录下所有的excel(csv)文件importglobfilesglob。glob(datacs。xls)dflist〔〕foriinfiles:dflist。append(pd。readexcel(i,usecols〔ID,时间,名称〕))dfpd。concat(dflist)合并增加列对df1的列和df2的列执行SQL形式的joindf1。join(df2,oncol1,howinner)用key合并两个表dfallpd。merge(dfsku,dfspu,howleft,leftondfsku〔productid〕,rightondfspu〔p。productid〕)13时间处理时间序列时间索引df。indexpd。DatetimeIndex(df。index)时间只保留日期df〔date〕df〔time〕。dt。date将指定字段格式化为时间类型df〔date〕pd。todatetime(df〔时间〕)转化为北京时间df〔time〕df〔time〕。dt。tzconvert(AsiaShanghai)转为指定格式,可能会失去秒以后的精度df〔time〕df〔time〕。dt。strftime(YmdH:M:S)dc。indexpd。todatetime(dc。index,formatYmd,errorsignore)时间,参与运算pd。DateOffset(days2)当前时间pd。Timestamp。now()pd。todatetime(today)判断时间是否当天pd。datetime。today()。yeardf。startwork。dt。yeardf。time。astype(datetime64〔ns〕)。dt。datepd。todatetime(today)定义个天数importdatetimedayslambdax:datetime。timedelta(daysx)days(2)同上,直接用pd包装的pd。Timedelta(days2)unix时间戳pd。todatetime(ted。filmdate,unitms)按月(YMDHminS)采集合计数据df。setindex(date)。resample(M)〔quantity〕。sum()df。setindex(date)。groupby(name)〔extprice〕。resample(M)。sum()按天汇总,index是datetime时间类型df。groupby(bydf。index。date)。agg({uu:count})按周汇总df。groupby(bydf。index。weekday)。uu。count()按月进行汇总df。groupby(〔name,pd。Grouper(keydate,freqM)〕)〔extprice〕。sum()按月进行汇总df。groupby(pd。Grouper(keyday,freq1M))。sum()按照年度,且截止到12月最后一天统计extprice的sum值df。groupby(〔name,pd。Grouper(keydate,freqADEC)〕)〔extprice〕。sum()按月的平均重新采样df〔Close〕。resample(M)。mean()https:pandas。pydata。orgpandasdocsstableuserguidetimeseries。htmloffsetaliases取时间范围,并取工作日rngpd。daterange(start612016,end6302016,freqB)重新定时数据频度,按一定补充方法df。asfreq(D,methodpad)时区,df。tzconvert(EuropeBerlin)df。time。tzlocalize(tzAsiaShanghai)转北京时间df〔Time〕df〔Time〕。dt。tzlocalize(UTC)。dt。tzconvert(AsiaShanghai)查看所有时区frompytzimportalltimezonesprint(alltimezones)时长,多久,两个时间间隔时间,时差df〔duration〕pd。todatetime(df〔end〕)pd。todatetime(df〔begin〕)指定时间进行对比df。Time。astype(datetime64〔ns〕)pd。todatetime(2019121120:00:00,formatYmdH:M:S)14常用备忘解决科学计数法问题dfpd。readcsv(111。csv,sep)。fillna()〔:〕。astype(str)和订单量相关性最大到小显示dd。corr()。totalordernum。sortvalues(ascendingFalse)解析列表、json字符串importastast。literaleval(〔{id:7,name:Funny}〕)SeriesapplymethodappliesafunctiontoeveryelementinaSeriesandreturnsaSeriested。ratings。apply(strtolist)。head()lambdaisashorteralternativeted。ratings。apply(lambdax:ast。literaleval(x))anevenshorteralternativeistoapplythefunctiondirectly(withoutlambda)ted。ratings。apply(ast。literaleval)索引index使用apply()df。index。toseries()。apply()15样式显示https:pbpython。comstylingpandas。htmldf〔percost〕df〔percost〕。map({:,。2f}。format)显示比形式指定列表(值大于0)加背景色df。style。applymap(lambdax:backgroundcolor:greyifx0else,subsetpd。IndexSlice〔:,〔B,C〕〕)最大值最小值加背景色df。style。highlightmax(colorlightgreen)。highlightmin(colorcd4f39)df。style。format({:。2},subsetpd。IndexSlice〔:,〔B〕〕)显示百分号指定各列的样式formatdict{sum:{0:,。0f},date:{:Ym},pctoftotal:{:。2}c:str。upper}一次性样式设置(df。style。format(formatdict)多种样式形式。hideindex()指定列按颜色深度表示值大小,cmap为matplotlibcolormap。backgroundgradient(subset〔sumnum〕,cmapBuGn)表格内作横向bar代表值大小。bar(colorFFA07A,vmin100000,subset〔sum〕,alignzero)表格内作横向bar代表值大小。bar(colorlightgreen,vmin0,subset〔pctoftotal〕,alignzero)下降(小于0)为红色,上升为绿色。bar(color〔ffe4e4,bbf9ce〕,vmin0,vmax1,subset〔增长率〕,alignzero)给样式表格起个名字。setcaption(2018SalesPerformance)。hideindex())按条件给整行加背景色(样式)defbackgroundcolor(row):ifrow。pvnum10000:return〔backgroundcolor:red〕len(row)elifrow。pvnum100:return〔backgroundcolor:yellow〕len(row)return〔〕len(row)使用df。style。apply(backgroundcolor,axis1)16表格中的直方图,sparkline图形importsparklinesimportnumpyasnpdefsparklinestr(x):binsnp。histogram(x)〔0〕sl。join(sparklines。sparklines(bins))returnslsparklinestr。namesparkline画出趋势图,保留两位小数df。groupby(name)〔quantity,extprice〕。agg(〔mean,sparklinestr〕)。round(2)sparkline图形https:hugoworld。wordpress。com20190126sparklinesinjupyternotebooksipythonandpandasdefsparkline(data,figsize(4,0。25),kwargs):createsasparklineTurnoffthemaxcolumnwidthsotheimageswontbetruncatedpd。setoption(display。maxcolwidth,1)Turningoffthemaxcolumnwilldisplayallthedataifgatheringintosetsarraywemightwanttorestricttoafewitemspd。setoption(display。maxseqitems,3)Monkeypatchthedataframesothesparklinesaredisplayedpd。DataFrame。reprhtmllambdaself:self。tohtml(escapeFalse)frommatplotlibimportpyplotaspltimportbase64fromioimportBytesIOdatalist(data),axplt。subplots(1,1,figsizefigsize,kwargs)ax。plot(data)ax。fillbetween(range(len(data)),data,len(data)〔min(data)〕,alpha0。1)ax。setaxisoff()imgBytesIO()plt。savefig(img)plt。close()returnimgsrca2020imgdataimg。jpgdatasrcimg01。bs178。combcrhdfd2050799e69aa8。jpg。format(base64。b64encode(img。getvalue())。decode())使用df。groupby(name)〔quantity,extprice〕。agg(〔mean,sparkline〕)df。apply(sparkline,axis1)仅支持横向数据画线,可做T转置17可视化
kind:strline:lineplot(default)bar:verticalbarplotbarh:horizontalbarplothist:histogrambox:boxplotkde:KernelDensityEstimationplotdensity:sameaskdearea:areaplotpie:pieplot
常用方法:df88。plot。bar(yrate,figsize(20,10))图形大小,单位英寸df1〔df1。pday20190601〕。plot。bar(xpday,y〔totalordernum,orderuser〕,figsize(16,6))柱状图每条线一个站点,各站点的homeremain,stack的意思是堆叠,堆积unstack即不要堆叠(df〔(df。pday2019051)(df。utype老客)〕。groupby(〔pday,siteid〕)〔homeremain〕。sum()。unstack()。plot。line())折线图,多条,x轴默认为indexdd。plot。line(xpday,y〔uvall,homeremain〕)dd。loc〔新访客,2〕。plot。scatter(xorderuser,ypaidorderuser)散点图dd。plot。bar(colorblue)柱状图,barh为横向柱状图sns。heatmap(dd。corr())相关性可视化刻度从0开始,指定范围ylim(0,100),x轴相同s。plot。line(ylim0)折线颜色https:matplotlib。orgexamplescolornamedcolors。html样式(,,。,:)折线标记https:matplotlib。orgapimarkersapi。htmlgridTrue显示刻度etc:https:matplotlib。orgapiasgenmatplotlib。pyplot。plot。htmls。plot。line(colorgreen,linestyle,markero)两个图绘在一起〔df〔数量〕。plot。kde(),df〔数量〕。plot。hist()〕对表中的数据按颜色可视化importseabornassnscmsns。lightpalette(green,ascmapTrue)df。style。backgroundgradient(cmapcm,axis1)将数据转化为二维数组〔iforiinzip(〔i。strftime(Ymd)foriins。index。tolist()〕,s。tolist())〕和plot用法一样https:hvplot。pyviz。orguserguidePlotting。htmlimporthvplot。pandas打印Sqlite建表语句print(pd。io。sql。getschema(fdf,tablename))18Jupyternotebooks问题jupyternotebooksplt图表配置importmatplotlib。pyplotaspltplt。rcParams〔figure。figsize〕(15。0,8。0)固定显示大小plt。rcParams〔font。family〕〔sansserif〕显示中文问题plt。rcParams〔font。sansserif〕〔SimHei〕显示中文问题输出单行全部变量fromIPython。core。interactiveshellimportInteractiveShellInteractiveShell。astnodeinteractivityalljupyternotebooks页面自适应宽度fromIPython。core。displayimportdisplay,HTMLdisplay(HTML(style。container{width:100!important;}style))背景白色stylenotebookpanel{background:ffffff;}stylejupyternotebooks嵌入页面内容fromIPython。displayimportIFrameIFrame(https:arxiv。orgpdf1406。2661。pdf,width800,height450)Markdown一个cell不支持多张粘贴图片一个文件打印打开只显示一张图片问题解决sitepackagesnotebookstaticnotebookjsmain。min。jsvarkey处33502、33504行keyutils。uuid()。slice(2,6)encodeURIandParens(blob。name);keyutils。uuid()。slice(2,6)Object。keys(that。attachments)。length;https:github。comihnortonnotebookcommit55687c2dc08817da587977cb6f19f8cc0103bab1多行输出fromIPython。core。interactiveshellimportInteractiveShellInteractiveShell。astnodeinteractivityall默认为last执行shell命令:!命令语句在线可视化工具https:plot。lycreate19Slideshow幻灯片
安装RISE库:pipinstallRISE〔Altr〕播放退出播放,逗号隐藏左侧两个大操作按钮,t总览ppt,黑屏Slide:主页面,通过按左右方向键进行切换。SubSlide:副页面,通过按上下方向键进行切换。全屏Fragment:一开始是隐藏的,按空格键或方向键后显示,实现动态效果。在一个页面Skip:在幻灯片中不显示的单元。Notes:作为演讲者的备忘笔记,也不在幻灯片中显示。关于作者:李庆辉,数据产品专家,某电商公司数据产品团队负责人,擅长通过数据治理、数据分析、数据化运营提升公司的数据应用水平。
精通Python数据科学及PythonWeb开发,曾独立开发公司的自动化数据分析平台,参与教育部1X数据分析(Python)职业技能等级标准评审。
中国人工智能学会会员,企业数字化、数据产品和数据分析讲师,在个人网站盖若上编写的技术和产品教程广受欢迎。
延伸阅读
《深入浅出Pandas》
推荐语:这是一本全面覆盖了Pandas使用者的普遍需求和痛点的著作,基于实用、易学的原则,从功能、使用、原理等多个维度对Pandas做了全方位的详细讲解,既是初学者系统学习Pandas难得的入门书,又是有经验的Python工程师案头必不可少的查询手册。
普普通通的蔗糖,也曾是个狠角色新年是甜蜜的。以前每逢过年,家里都会买几斤糖,用分格大盘呈上来待客。喜庆的日子消耗更多的糖,也因之更浓郁、热烈。糖,像火把一样点燃沉闷的生活,让人的心情像波浪一样活跃。5……
云南的这个县城,因预言而变成空城,如今却让人惊艳导读:云南的这个县城,因预言而变成空城,如今却让人惊艳带你日行三千里,吃货相见泯恩仇,RR带你看世界,大家好,我就是那个靠脸吃饭的小R。被称为彩云之南的云南,拥有那……
淘宝和淘特的区别在哪里?淘特为什么这么便宜?淘宝和淘特的区别在哪里?1、APP版面不同淘宝APP的版面以商店为主,偏向于千人千面,以期待用户长时间停留和购物;而淘特APP的版面则是以商品为主,种类分布齐全,价……
浪潮服务数字社会建设六大专项行动案例展播构筑智慧文旅建设新场3月28日,由浪潮集团主办的浪潮服务数字社会建设六大专项行动在济南启动,将围绕新型智慧城市、智慧基层、智慧教育、智慧医养、智慧文旅、智慧交通建设等六个方面,推动新一代信息技术与……
为什么健身的人都吃鸡胸不吃鸡腿肉?为什么很多人健身的时候选择鸡胸肉呢?(附带几种鸡胸肉做法)健身的朋友,无论目的还是增肌还是减肥,都需要摄入大量的蛋白质。因为蛋白质是组成人体一切组织、细胞的基本成分……
为什么现在的红薯和小时候的味道不一样了?从味道上看小时候吃的东西包括红薯,确实!可能真的是比现在的好吃!因为严格地说我们现在吃的蔬菜水果和小时候吃的蔬菜水果已经不是一个品种了。从上世纪七八十年代至今,中国……
90后宝妈晒晚餐,走红朋友圈,2菜1汤成本不足30元,网友真今天下大雨,没有去买菜,就用家里为数不多的食材,做了一顿简单的晚餐。肉类就剩排骨了,我只好先用排骨煲汤,再把大部分的排骨捞出来和土豆一起烧,这样汤和菜都有了,一举两得,孩子也特……
苹果不足为惧?赵明荣耀Magic5系列提前帮用户做取舍,必是按照惯例,荣耀每一次发布会后高管都会接受媒体采访,回答对于新品及对行业的看法,荣耀Magic5系列自然也不例外。荣耀CEO赵明接受媒体采访时表示,荣耀Magic5系列发布前提前……
新语说书继续讲述徐霞客的旅行机密在央视的一期《典籍里的中国》中,曾经演绎了《徐霞客游记》背后的故事。我知道了喝一口长江源头的水,是徐霞客的平生夙愿,然而他生前却未能得偿所愿。大家都知道,400多年前,徐……
做了5款营养蔬果汁,减肥控糖放心喝我们不推荐喝果汁,理由主要有这么三个,不过这些问题也都有应对方法,下面就系统讲讲。最后再给大家推荐5款适合早餐喝的营养蔬果汁,每种食材的配料我都写清楚了,早餐来不及做菜,……
广东煲粥地图我们煲的不是粥,而是整个世界据说,一名粤港澳地区动物界著名哲学主义思想学家,在它求学时期,有一位陈小姐曾向它提问:中国四大发明系咩啊?它回答道:粥粉面饭。麦专家的回答,其实是从生物的本性出发,……
舌尖上的江苏江苏辖江临海,扼淮控湖,经济繁荣,教育发达,文化昌盛。地跨长江、淮河南北,京杭大运河从中穿过,拥有吴、金陵、淮扬、中原四大多元文化,是中国古代文明的发祥地之一。也是中国淮……
你们知道柠檬泡水的方法嘛?用料:柠檬3个,蜂蜜或(冰糖),温开水各适量。步骤(一)将柠檬抹上盐轻搓洗去果蜡,洗干净后放置15分钟左右后沥干水分。步骤(二)切片,头尾不要,切的尽量薄一点带皮,……
双汇火腿土坑酸菜315齐翻车,这样的食物你敢吃吗?有谁没吃过呢有的东西针对自己的喜好,所谓的双汇火腿土坑酸菜还真没吃过,以后也不会再吃酸菜。酸菜本身就容易出现问题,不过有那么多的人喜欢吃酸菜,说明酸菜的味道和前景是看好的……
尿酸高的你喝对水了吗?我们知道尿酸高一种是因为尿酸生成过多,浓度升高就会渐渐地析出尿酸结晶;另一种就是尿酸排泄出问题了,尿酸无法从人体中有效排泄出来,也会造成尿酸升高。尿酸高会引起很多问题,比如尿酸……
新疆的羊肉和江南的羊肉,在口味上有什么不同?新疆的羊大多在盐碱地中放牧,那里几乎没多少植物,仅有的几簇细草也分布得稀稀落落的。羊为了获得足够的食物,只能不停走动去寻找仅有的发黄的草和盐分较多的水源,有的时候甚至要靠刨草根……
你有吃过一次就放弃的美食吗?为什么?少女的酥胸不知是从哪些文青那传来的?马卡龙,咬一口,巨甜巨甜,甜到呛嗓子,但是好像有很多人超爱马卡龙。一盒色彩缤纷的马卡龙,吃到嘴里同一个味道,齁甜。为什么非得放那……
南京有哪些好吃的汤包?南京汤包吃了千千万,其实好吃的都差不多,就说两家常去的,不见得最好吃,但是味道也算汤包里翘楚。1。殷高巷小李汤包,这家大部分人都会推荐的吧,那我就说个他家其他的。他家的全……
飞天茅台为什么这么难买?飞天茅台并不难买,在各大商超、网购平台,均有销售,但是价格基本都是三千块左右。真正难买得是1499元一瓶的平价茅台。百姓想买平价飞天茅台,主要还是在几个大型网购平台抢购,……
白象泡面大火是尬吹还是真情怀?不是什么尬吹,更不是什么情怀。白象就是一个踏踏实实的民族企业而已。这不是真情怀是什么??支持民族企业有什么错吗???就冲他能对残疾员工一视同仁,我就支持他你想……
全棉时代带娃出行的装备清单,你get了吗?对于体质弱、免疫力差的婴幼儿来说,秋季是敏感的季节。由于秋天气温多变反复无常,加上现在疫情反复,宝妈们出行还是要注意宝宝们的安全问题。小编今天给大家整理了全棉时代的出行装备清单……
老坛酸菜方便面你还会吃吗?老坛酸菜方便面你还会吃吗?我从来就不吃方便面,那都是有钱的人吃的食物。论吃还是家常饭,粗茶淡饭方为贵,不是自己产的,就是吃了不放心,吃出病来,去瞒愿人家谁。吃……
嘉禾抢抓晴好天气加快文旅项目建设红网时刻新闻3月10日讯(通讯员雷佳悦刘颖彭华)连日来,嘉禾县抢抓晴好天气,全力加快推进嘉滨湖商业文化公园项目建设,助力旅发大会。在嘉滨湖商业文化公园项目施工现场,数十名……
封城,自己在外面住旅店,没有外卖,店铺都关门,吃什么?疫情防控要居家那也不用太心慌!咱们一起来做岐山美食今天我们要学的是岐山最火爆的小吃岐山擀面皮第一步洗面面粉中加少许盐加凉水和面……