|
目录一、用法精讲431、pandas.DataFrame.items方法431-1、语法431-2、参数431-3、功能431-4、返回值431-5、说明431-6、用法431-6-1、数据准备431-6-2、代码示例431-6-3、结果输出432、pandas.DataFrame.keys方法432-1、语法432-2、参数432-3、功能432-4、返回值432-5、说明432-6、用法432-6-1、数据准备432-6-2、代码示例432-6-3、结果输出433、pandas.DataFrame.iterrows方法433-1、语法433-2、参数433-3、功能433-4、返回值433-5、说明433-6、用法433-6-1、数据准备433-6-2、代码示例433-6-3、结果输出434、pandas.DataFrame.itertuples方法434-1、语法434-2、参数434-3、功能434-4、返回值434-5、说明434-6、用法434-6-1、数据准备434-6-2、代码示例434-6-3、结果输出435、pandas.DataFrame.pop方法435-1、语法435-2、参数435-3、功能435-4、返回值435-5、说明435-6、用法435-6-1、数据准备435-6-2、代码示例435-6-3、结果输出二、推荐阅读1、Python筑基之旅2、Python函数之旅3、Python算法之旅4、Python魔法之旅5、博客个人主页一、用法精讲431、pandas.DataFrame.items方法431-1、语法#431、pandas.DataFrame.items方法pandas.DataFrame.items()Iterateover(columnname,Series)pairs.IteratesovertheDataFramecolumns,returningatuplewiththecolumnnameandthecontentasaSeries.Yields:labelobjectThecolumnnamesfortheDataFramebeingiteratedover.contentSeriesThecolumnentriesbelongingtoeachlabel,asaSeries.431-2、参数 无431-3、功能 返回一个生成器,它生成一个(columnname,Series)元组,对于每个元组,columnname是列的名称,而Series是该列的数据。431-4、返回值 返回一个迭代器,每次迭代会生成一个(columnname,Series)对。431-5、说明 无431-6、用法431-6-1、数据准备无431-6-2、代码示例#431、pandas.DataFrame.items方法importpandasaspd#创建一个简单的DataFramedf=pd.DataFrame({'A':[1,2,3],'B':[4,5,6],'C':[7,8,9]})#使用items()方法迭代DataFrame的列forcolumn_name,seriesindf.items():print(f"Columnname:{column_name}")print(f"Columndata:\n{series}\n")431-6-3、结果输出#431、pandas.DataFrame.items方法#Columnname:A#Columndata:#01#12#23#Name:A,dtype:int64##Columnname:B#Columndata:#04#15#26#Name:B,dtype:int64##Columnname:C#Columndata:#07#18#29#Name:C,dtype:int64432、pandas.DataFrame.keys方法432-1、语法#432、pandas.DataFrame.keys方法pandas.DataFrame.keys()Getthe‘infoaxis’(seeIndexingformore).ThisisindexforSeries,columnsforDataFrame.Returns:IndexInfoaxis.432-2、参数 无432-3、功能 返回一个包含列名的Index对象。432-4、返回值 返回一个pandasIndex对象,其中包含DataFrame的所有列名。432-5、说明 无432-6、用法432-6-1、数据准备无432-6-2、代码示例#432、pandas.DataFrame.keys方法importpandasaspd#创建一个简单的DataFramedf=pd.DataFrame({'A':[1,2,3],'B':[4,5,6],'C':[7,8,9]})#使用keys()方法获取DataFrame的列名column_names=df.keys()#打印列名print(column_names)432-6-3、结果输出#432、pandas.DataFrame.keys方法#Index(['A','B','C'],dtype='object')433、pandas.DataFrame.iterrows方法433-1、语法#433、pandas.DataFrame.iterrows方法pandas.DataFrame.iterrows()IterateoverDataFramerowsas(index,Series)pairs.Yields:indexlabelortupleoflabelTheindexoftherow.AtupleforaMultiIndex.dataSeriesThedataoftherowasaSeries.433-2、参数 无433-3、功能 逐行遍历DataFrame,并将每行的数据以Series的形式返回。433-4、返回值 返回一个迭代器对象,每次迭代返回一个(index,Series)对。433-5、说明433-5-1、iterrows()的性能相对较低,因为每行都被转换为一个pandasSeries对象,这可能会导致在处理大型DataFrame时的效率低下。433-5-2、DataFrame中的dtypes可能在iterrows()过程中发生变化,因为每行返回的Series可能会自动转换为最适合存储该行数据的dtype。433-5-3、如果需要更高效地遍历行,可以考虑使用DataFrame.itertuples(),它返回的是命名元组,性能更佳。433-6、用法433-6-1、数据准备无433-6-2、代码示例#433、pandas.DataFrame.iterrows方法importpandasaspd#创建一个简单的DataFramedf=pd.DataFrame({'A':[1,2,3],'B':[4,5,6],'C':[7,8,9]})#使用iterrows方法遍历DataFrame的每一行forindex,rowindf.iterrows():print(f"Index:{index}")print(f"Rowdata:\n{row}\n")433-6-3、结果输出#433、pandas.DataFrame.iterrows方法#Index:0#Rowdata:#A1#B4#C7#Name:0,dtype:int64##Index:1#Rowdata:#A2#B5#C8#Name:1,dtype:int64##Index:2#Rowdata:#A3#B6#C9#Name:2,dtype:int64434、pandas.DataFrame.itertuples方法434-1、语法#434、pandas.DataFrame.itertuples方法pandas.DataFrame.itertuples(index=True,name='Pandas')IterateoverDataFramerowsasnamedtuples.Parameters:indexbool,defaultTrueIfTrue,returntheindexasthefirstelementofthetuple.namestrorNone,default“Pandas”ThenameofthereturnednamedtuplesorNonetoreturnregulartuples.Returns:iteratorAnobjecttoiterateovernamedtuplesforeachrowintheDataFramewiththefirstfieldpossiblybeingtheindexandfollowingfieldsbeingthecolumnvalues.434-2、参数434-2-1、index(可选,默认值为True):指定是否在返回的命名元组中包含DataFrame的行索引(即行标签)。当index=True时,返回的命名元组的第一个元素将是该行的索引(即行标签);当index=False时,索引不会包含在返回的命名元组中,只返回列的数据。434-2-2、name(可选,默认值为'Pandas'):指定返回的命名元组的名称,该参数允许你为返回的命名元组指定一个自定义的名称,如果将name=None,则返回的是普通的元组,而不是命名元组。434-3、功能 用于生成DataFrame每行的一个命名元组,并提供了可选参数用于定制返回的命名元组结构。434-4、返回值 返回一个生成器,每次迭代生成一个表示DataFrame一行数据的命名元组或普通元组(取决于name参数),命名元组的字段名与DataFrame的列标签相对应,当index=True时,第一个字段名为Index,表示行索引。434-5、说明434-5-1、性能优势:itertuples()比iterrows()更高效,特别是在处理大规模数据时,建议使用itertuples()。434-5-2、字段名称限制:DataFrame列标签在命名元组中会转换为有效的Python标识符,如果列名中有非法字符(如空格、数字开头等),这些字符会被替换或忽略。434-5-3、无法修改数据:使用itertuples()只能读取数据,而不能直接修改DataFrame的数据。434-6、用法434-6-1、数据准备无434-6-2、代码示例#434、pandas.DataFrame.itertuples方法importpandasaspd#创建一个简单的DataFramedf=pd.DataFrame({'A':[1,2,3],'B':[4,5,6],'C':[7,8,9]})#使用itertuples方法遍历DataFrame的每一行,包含索引并命名元组为'Pandas'forrowindf.itertuples(index=True,name='Pandas'):print(row)#使用itertuples方法遍历DataFrame的每一行,不包含索引并命名元组为'CustomName'forrowindf.itertuples(index=False,name='CustomName'):print(row)434-6-3、结果输出#434、pandas.DataFrame.itertuples方法#Pandas(Index=0,A=1,B=4,C=7)#Pandas(Index=1,A=2,B=5,C=8)#Pandas(Index=2,A=3,B=6,C=9)#CustomName(A=1,B=4,C=7)#CustomName(A=2,B=5,C=8)#CustomName(A=3,B=6,C=9)435、pandas.DataFrame.pop方法435-1、语法#435、pandas.DataFrame.pop方法pandas.DataFrame.pop(item)Returnitemanddropfromframe.RaiseKeyErrorifnotfound.Parameters:itemlabelLabelofcolumntobepopped.Returns:Series435-2、参数435-2-1、item(必须):字符串,指定要移除的列的名称(即列标签),该参数必须是DataFrame中存在的列名,否则会引发KeyError。435-3、功能 用于移除DataFrame中的指定列(以列标签的方式指定),该方法不仅会从DataFrame中删除这个列,还会将其作为一个Series返回。435-4、返回值 返回被移除的列的数据,以Series的形式。435-5、说明435-5-1、列名必须存在:pop()方法要求item参数指定的列名必须存在于DataFrame中,否则会引发KeyError。435-5-2、不可逆操作:pop()是一个不可逆操作,一旦执行该操作并删除了列后,如果没有保存返回的Series数据,就无法恢复该列。435-5-3、直接修改DataFrame:pop()方法直接修改调用该方法的DataFrame,会实质性地移除指定的列。435-5-4、性能:相对来说,pop()比在删除列后重新赋值更高效,因为它会直接修改原始的数据结构。435-6、用法435-6-1、数据准备无435-6-2、代码示例#435、pandas.DataFrame.pop方法importpandasaspd#创建一个示例DataFramedf=pd.DataFrame({'A':[1,2,3],'B':[4,5,6],'C':[7,8,9]})#输出原始DataFrameprint("原始DataFrame:")print(df)#使用pop方法移除列'B'removed_column=df.pop('B')#输出被移除的列print("\n被移除的列'B':")print(removed_column)#输出移除列'B'后的DataFrameprint("\n移除列后DataFrame:")print(df)435-6-3、结果输出#435、pandas.DataFrame.pop方法#原始DataFrame:#ABC#0147#1258#2369##被移除的列'B':#04#15#26#Name:B,dtype:int64##移除列后DataFrame:#AC#017#128#239二、推荐阅读1、Python筑基之旅2、Python函数之旅3、Python算法之旅4、Python魔法之旅5、博客个人主页
|
|