当前位置:首页 » 《随便一记》 » 正文

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

6 人参与  2024年11月11日 16:42  分类 : 《随便一记》  评论

点击全文阅读


目录

一、用法精讲

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

二、推荐阅读

1、Python筑基之旅
2、Python函数之旅
3、Python算法之旅
4、Python魔法之旅
5、博客个人主页

点击全文阅读


本文链接:http://zhangshiyu.com/post/184703.html

<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

关于我们 | 我要投稿 | 免责申明

Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1