目录
一、用法精讲
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()Iterate over (column name, Series) pairs.Iterates over the DataFrame columns, returning a tuple with the column name and the content as a Series.Yields:labelobjectThe column names for the DataFrame being iterated over.contentSeriesThe column entries belonging to each label, as a Series.
431-2、参数
无
431-3、功能
返回一个生成器,它生成一个(column name, Series)元组,对于每个元组,column name是列的名称,而Series是该列的数据。
431-4、返回值
返回一个迭代器,每次迭代会生成一个(column name, Series)对。
431-5、说明
无
431-6、用法
431-6-1、数据准备
无
431-6-2、代码示例
# 431、pandas.DataFrame.items方法import pandas as pd# 创建一个简单的DataFramedf = pd.DataFrame({ 'A': [1, 2, 3], 'B': [4, 5, 6], 'C': [7, 8, 9]})# 使用items()方法迭代DataFrame的列for column_name, series in df.items(): print(f"Column name: {column_name}") print(f"Column data:\n{series}\n")
431-6-3、结果输出
# 431、pandas.DataFrame.items方法# Column name: A# Column data:# 0 1# 1 2# 2 3# Name: A, dtype: int64# # Column name: B# Column data:# 0 4# 1 5# 2 6# Name: B, dtype: int64# # Column name: C# Column data:# 0 7# 1 8# 2 9# Name: C, dtype: int64
432、pandas.DataFrame.keys方法
432-1、语法
# 432、pandas.DataFrame.keys方法pandas.DataFrame.keys()Get the ‘info axis’ (see Indexing for more).This is index for Series, columns for DataFrame.Returns:IndexInfo axis.
432-2、参数
无
432-3、功能
返回一个包含列名的Index对象。
432-4、返回值
返回一个pandas Index对象,其中包含DataFrame的所有列名。
432-5、说明
无
432-6、用法
432-6-1、数据准备
无
432-6-2、代码示例
# 432、pandas.DataFrame.keys方法import pandas as pd# 创建一个简单的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()Iterate over DataFrame rows as (index, Series) pairs.Yields:indexlabel or tuple of labelThe index of the row. A tuple for a MultiIndex.dataSeriesThe data of the row as a Series.
433-2、参数
无
433-3、功能
逐行遍历DataFrame,并将每行的数据以Series的形式返回。
433-4、返回值
返回一个迭代器对象,每次迭代返回一个(index,Series)
对。
433-5、说明
433-5-1、iterrows()的性能相对较低,因为每行都被转换为一个pandas Series对象,这可能会导致在处理大型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方法import pandas as pd# 创建一个简单的DataFramedf = pd.DataFrame({ 'A': [1, 2, 3], 'B': [4, 5, 6], 'C': [7, 8, 9]})# 使用iterrows方法遍历DataFrame的每一行for index, row in df.iterrows(): print(f"Index: {index}") print(f"Row data:\n{row}\n")
433-6-3、结果输出
# 433、pandas.DataFrame.iterrows方法# Index: 0# Row data:# A 1# B 4# C 7# Name: 0, dtype: int64# # Index: 1# Row data:# A 2# B 5# C 8# Name: 1, dtype: int64# # Index: 2# Row data:# A 3# B 6# C 9# Name: 2, dtype: int64
434、pandas.DataFrame.itertuples方法
434-1、语法
# 434、pandas.DataFrame.itertuples方法pandas.DataFrame.itertuples(index=True, name='Pandas')Iterate over DataFrame rows as namedtuples.Parameters:indexbool, default TrueIf True, return the index as the first element of the tuple.namestr or None, default “Pandas”The name of the returned namedtuples or None to return regular tuples.Returns:iteratorAn object to iterate over namedtuples for each row in the DataFrame with the first field possibly being the index and following fields being the column values.
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方法import pandas as pd# 创建一个简单的DataFramedf = pd.DataFrame({ 'A': [1, 2, 3], 'B': [4, 5, 6], 'C': [7, 8, 9]})# 使用itertuples方法遍历DataFrame的每一行,包含索引并命名元组为'Pandas'for row in df.itertuples(index=True, name='Pandas'): print(row)# 使用itertuples方法遍历DataFrame的每一行,不包含索引并命名元组为'CustomName'for row in df.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)Return item and drop from frame. Raise KeyError if not found.Parameters:itemlabelLabel of column to be popped.Returns:Series
435-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方法import pandas as pd# 创建一个示例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:# A B C# 0 1 4 7# 1 2 5 8# 2 3 6 9# # 被移除的列'B':# 0 4# 1 5# 2 6# Name: B, dtype: int64# # 移除列后DataFrame:# A C# 0 1 7# 1 2 8# 2 3 9