找回密码
 会员注册
查看: 32|回复: 0

Python酷库之旅-第三方库Pandas(021)

[复制链接]

2万

主题

0

回帖

7万

积分

超级版主

积分
70601
发表于 2024-9-10 01:40:33 | 显示全部楼层 |阅读模式
目录一、用法精讲52、pandas.from_dummies函数52-1、语法52-2、参数52-3、功能52-4、返回值52-5、说明52-6、用法52-6-1、数据准备52-6-2、代码示例52-6-3、结果输出53、pandas.factorize函数53-1、语法53-2、参数53-3、功能53-4、返回值53-5、说明53-6、用法53-6-1、数据准备53-6-2、代码示例53-6-3、结果输出 54、pandas.unique函数54-1、语法54-2、参数54-3、功能54-4、返回值54-5、说明54-6、用法54-6-1、数据准备54-6-2、代码示例54-6-3、结果输出二、推荐阅读1、Python筑基之旅2、Python函数之旅3、Python算法之旅4、Python魔法之旅5、博客个人主页一、用法精讲52、pandas.from_dummies函数52-1、语法#52、pandas.from_dummies函数pandas.from_dummies(data,sep=None,default_category=None)CreateacategoricalDataFramefromaDataFrameofdummyvariables.Invertstheoperationperformedbyget_dummies().Newinversion1.5.0.Parameters:dataDataFrameDatawhichcontainsdummy-codedvariablesinformofintegercolumnsof1’sand0’s.sepstr,defaultNoneSeparatorusedinthecolumnnamesofthedummycategoriestheyarecharacterindicatingtheseparationofthecategoricalnamesfromtheprefixes.Forexample,ifyourcolumnnamesare‘prefix_A’and‘prefix_B’,youcanstriptheunderscorebyspecifyingsep=’_’.default_categoryNone,HashableordictofHashables,defaultNoneThedefaultcategoryistheimpliedcategorywhenavaluehasnoneofthelistedcategoriesspecifiedwithaone,i.e.ifalldummiesinarowarezero.Canbeasinglevalueforallvariablesoradictdirectlymappingthedefaultcategoriestoaprefixofavariable.ReturnsataFrameCategoricaldatadecodedfromthedummyinput-data.Raises:ValueErrorWhentheinputDataFramedatacontainsNAvalues.WhentheinputDataFramedatacontainscolumnnameswithseparatorsthatdonotmatchtheseparatorspecifiedwithsep.Whenadictpassedtodefault_categorydoesnotincludeanimpliedcategoryforeachprefix.Whenavalueindatahasmorethanonecategoryassignedtoit.Whendefault_category=Noneandavalueindatahasnocategoryassignedtoit.TypeErrorWhentheinputdataisnotoftypeDataFrame.WhentheinputDataFramedatacontainsnon-dummydata.Whenthepassedsepisofawrongdatatype.Whenthepasseddefault_categoryisofawrongdatatype.52-2、参数52-2-1、data(必须):一个DataFrame对象,包含了哑变量(0和1)的列,每列通常表示一个类别的存在或缺失。52-2-2、sep(可选,默认值为None):用于分隔哑变量列名中类别信息的分隔符。例如,如果列名是A_cat和A_dog,并且用下划线分隔,那么sep应该设置为 _。52-2-3、default_category(可选,默认值为None):在原始数据中,可能有一些类别在哑变量中缺失,这个参数允许指定一个默认类别,以便在缺失的情况下使用。52-3、功能        接受一个包含哑变量的DataFrame,并将其转换回表示原始类别的DataFrame,哑变量通常是通过对分类变量进行独热编码(one-hotencoding)生成的。52-4、返回值        返回值是一个DataFrame,其中包含了原始的分类数据,这些数据是根据哑变量的值重构的,即每行数据中值为1的哑变量列对应的列名(去掉分隔符和前缀)即为原始分类变量的值。52-5、说明        该函数非常有用,特别是在对数据进行独热编码之后希望恢复原始分类变量的情况下,它简化了数据预处理和模型结果解释的过程。52-6、用法52-6-1、数据准备无52-6-2、代码示例#52、pandas.from_dummies函数importpandasaspd#示例哑变量DataFramedata=pd.DataFrame({'color_red':[1,0,0],'color_blue':[0,1,0],'color_green':[0,0,1]})#使用pandas.from_dummies将哑变量转换回原始分类数据original_data=pd.from_dummies(data,sep='_')print(original_data)52-6-3、结果输出#52、pandas.from_dummies函数#color#0red#1blue#2green53、pandas.factorize函数53-1、语法#53、pandas.factorize函数pandas.factorize(values,sort=False,use_na_sentinel=True,size_hint=None)Encodetheobjectasanenumeratedtypeorcategoricalvariable.Thismethodisusefulforobtaininganumericrepresentationofanarraywhenallthatmattersisidentifyingdistinctvalues.factorizeisavailableasbothatop-levelfunctionpandas.factorize(),andasamethodSeries.factorize()andIndex.factorize().Parameters:valuessequenceA1-Dsequence.Sequencesthataren’tpandasobjectsarecoercedtondarraysbeforefactorization.sortbool,defaultFalseSortuniquesandshufflecodestomaintaintherelationship.use_na_sentinelbool,defaultTrueIfTrue,thesentinel-1willbeusedforNaNvalues.IfFalse,NaNvalueswillbeencodedasnon-negativeintegersandwillnotdroptheNaNfromtheuniquesofthevalues.Newinversion1.5.0.size_hintint,optionalHinttothehashtablesizer.Returns:codesndarrayAnintegerndarraythat’sanindexerintouniques.uniques.take(codes)willhavethesamevaluesasvalues.uniquesndarray,Index,orCategoricalTheuniquevalidvalues.WhenvaluesisCategorical,uniquesisaCategorical.Whenvaluesissomeotherpandasobject,anIndexisreturned.Otherwise,a1-Dndarrayisreturned.NoteEvenifthere’samissingvalueinvalues,uniqueswillnotcontainanentryforit.53-2、参数53-2-1、values(必须):需要编码的数组或序列,可以是列表、NumPy数组、Pandas系列等。53-2-2、sort(可选,默认值为False):是否对唯一值数组进行排序,如果为True,返回的唯一值数组将按字典顺序排序。53-2-3、use_na_sentinel(可选,默认值为True):是否在输出整数数组中使用-1作为NaN的标记,如果为False,则将NaN也编码为一个唯一的整数。53-2-4、size_hint(可选,默认值为None):一个整数提示,用于内部优化,指示预期的唯一值的数量,这可以提高大规模数据的处理性能。53-3、功能        将一组值(如列表、数组或序列)编码为整数索引。具体来说,它会为每个唯一值分配一个唯一的整数,并返回这些整数索引以及唯一值的数组。53-4、返回值        返回两个对象:53-4-1、整数索引数组:一个与输入数组大小相同的整数数组,其中每个整数对应于输入数组中的一个值。53-4-2、唯一值数组:一个包含输入数组中所有唯一值的数组,按它们首次出现的顺序排列,除非使用sort=True参数。53-5、说明        pandas.factorize的主要功能是:53-5-1、将类别数据转换为整数索引:通过为每个唯一值分配一个整数,使得类别数据可以用于数值计算或进一步分析。53-5-2、处理缺失值:可以选择是否将缺失值(NaN)编码为一个特定的整数(默认为-1)。53-6、用法53-6-1、数据准备无53-6-2、代码示例#53、pandas.factorize函数#53-1、基本用法importpandasaspdvalues=['a','b','a','c','b']factorized_values,unique_values=pd.factorize(values)print(factorized_values)print(unique_values)#53-2、使用sort参数importpandasaspdvalues=['a','b','a','c','b']factorized_values,unique_values=pd.factorize(values,sort=True)print(factorized_values)print(unique_values)#53-3、处理NaNimportpandasaspdvalues_with_nan=['a','b',None,'a','c']factorized_values,unique_values=pd.factorize(values_with_nan,use_na_sentinel=True)print(factorized_values)print(unique_values)#53-4、使用size_hint参数importpandasaspdlarge_values=['a']*100000+['b']*100000factorized_values,unique_values=pd.factorize(large_values,size_hint=2)print(factorized_values[:10])print(unique_values)53-6-3、结果输出 #53、pandas.factorize函数#53-1、基本用法#[01021]#['a''b''c']#53-2、使用sort参数#[01021]#['a''b''c']#53-3、处理NaN#[01-102]#['a''b''c']#53-4、使用size_hint参数#[0000000000]#['a''b']54、pandas.unique函数54-1、语法#54、pandas.unique函数pandas.unique(values)Returnuniquevaluesbasedonahashtable.Uniquesarereturnedinorderofappearance.ThisdoesNOTsort.Significantlyfasterthannumpy.uniqueforlongenoughsequences.IncludesNAvalues.Parameters:values1darray-likeReturns:numpy.ndarrayorExtensionArrayThereturncanbe:Index:whentheinputisanIndexCategorical:whentheinputisaCategoricaldtypendarray:whentheinputisaSeries/ndarrayReturnnumpy.ndarrayorExtensionArray.54-2、参数54-2-1、values(必须):可以是以下几种类型的对象:一维的pandas.Series一维的pandas.Index一维的numpy.ndarray一维的列表或序列54-3、功能        返回输入数组中的唯一值,按它们在数组中首次出现的顺序排列。54-4、返回值        返回一个numpy.ndarray,其中包含输入数组中的唯一值。54-5、说明    pandas.unique是一个简单且高效的函数,用于从一维数组、Series或Index中提取唯一值,它只需要一个参数,即要处理的数组,并返回一个包含唯一值的numpy.ndarray,这种功能在数据预处理和清理阶段非常有用,可以帮助识别数据集中的独特元素。54-6、用法54-6-1、数据准备无54-6-2、代码示例#54、pandas.unique函数#54-1、处理列表importpandasaspdvalues=[1,2,2,3,4,4,4,5]unique_values=pd.unique(values)print(unique_values)#54-2、处理pandasSeriesimportpandasaspdseries=pd.Series(['a','b','a','c','b','d'])unique_values=pd.unique(series)print(unique_values)#54-3、处理numpy数组importpandasaspdimportnumpyasnparray=np.array([1,2,3,1,2,3,4])unique_values=pd.unique(array)print(unique_values)#54-4、处理含有NaN的数据importpandasaspdvalues_with_nan=[1,2,np.nan,2,np.nan,3]unique_values=pd.unique(values_with_nan)print(unique_values)54-6-3、结果输出#54、pandas.unique函数#54-1、处理列表#[12345]#54-2、处理pandasSeries#['a''b''c''d']#54-3、处理numpy数组#[1234]#54-4、处理含有NaN的数据#[1.2.nan3.]二、推荐阅读1、Python筑基之旅2、Python函数之旅3、Python算法之旅4、Python魔法之旅5、博客个人主页
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 会员注册

本版积分规则

QQ|手机版|心飞设计-版权所有:微度网络信息技术服务中心 ( 鲁ICP备17032091号-12 )|网站地图

GMT+8, 2025-1-8 12:12 , Processed in 0.899277 second(s), 26 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表