数学建模之数据分析【七】:对Pandas DataFrame 进行切片

文章目录

对 Pandas DataFrames 进行切片,是一种强大的技术,允许根据整数位置或标签位置提取特定的数据子集。本文,我们将学习行和列切片、单元格选择和布尔条件的用法。

一、切片简介

借助 Pandas,我们可以在 Dataframe 中执行切片。使用 Pandas Dataframe 进行切片iloc\[\] 是 Python 中提取特定数据子集的一种强大技术。该iloc\[\] 方法允许您根据行和列的整数位置来定位和提取它们。

要使用 执行切片iloc\[\],请指定要包含在切片数据框中的行和列索引。语法类似于传统的数组切片,对于 Python 用户来说非常直观。例如,df.iloc1:5, 2:4从数据框中提取第 2 至第 5 行和第 3 至第 4 列。

在 Pandas 中对 DataFrame 进行切片包括以下步骤:

  1. 创建 DataFrame
  2. 对 DataFrame 进行切片

二、创建Pandas数据框

python 复制代码
import pandas as pd
 
# Initializing the nested list with Data set
player_list = [['M.S.Dhoni', 36, 75, 5428000],
               ['A.B.D Villers', 38, 74, 3428000],
               ['V.Kohli', 31, 70, 8428000],
               ['S.Smith', 34, 80, 4428000],
               ['C.Gayle', 40, 100, 4528000],
               ['J.Root', 33, 72, 7028000],
               ['K.Peterson', 42, 85, 2528000]]
 
# creating a pandas dataframe
df = pd.DataFrame(player_list, columns=['Name', 'Age', 'Weight', 'Salary'])
df # data frame before slicing

运行结果:

三、使用iloc进行切片

3.1 对行进行切片

python 复制代码
# Slicing rows in data frame
df1 = df.iloc[0:4]  #对第一行到第四行进行切片
# data frame after slicing
df1

3.2 对列进行切片

对列进行切片:

python 复制代码
# Slicing columnss in data frame
df1 = df.iloc[:, 0:2]#所有行,第1,2列
# data frame after slicing
df1

3.3 Dataframe选中特定单元格

选中特定单元格,列入第三行,第四列:

python 复制代码
specific_cell_value = df.iloc[2, 3]  # Row 3, Column 4 (Salary)
print("Specific Cell Value:", specific_cell_value)

输出:

8428000

四、使用loc创建切片

还可以通过 loc 实现切片,但有一些限制:

  • loc依赖于标签,如果您的 DataFrame 有自定义标签,您需要小心指定它们的方式。
  • 如果标签是整数,则使用整数位置和实际标签之间可能会产生混淆。

为此,我们需要使用以下代码手动将索引设置为标签:

python 复制代码
df_custom = df.set_index('Name')
df_custom

运行结果:

4.1 使用Python对Dataframe中的行进行切片

python 复制代码
sliced_rows_custom = df_custom.loc['A.B.D Villers':'S.Smith']
sliced_rows_custom

4.2 指定单元格

python 复制代码
specific_cell_value = df_custom.loc['V.Kohli', 'Salary']
print("\nValue of the Specific Cell (V.Kohli, Salary):", specific_cell_value)

五、在Python中使用布尔条件

python 复制代码
filtered_data = df[df['Age'] > 35].iloc[:, :]  # Select rows where Age is greater than 35
print("\nFiltered Data based on Age > 35:\n", filtered_data)

iloc()只是分割,df可做筛选。

六、结论

总而言之,iloc\[\] 和 loc\[\] 均在 Pandas 中提供多种切片功能。iloc\[\] 基于整数,而 loc\[\] 则依赖于标签,因此在使用自定义索引或混合数据类型时需要仔细考虑。

相关推荐
初夏睡觉1 小时前
原创题目 - 空壳恋爱
c++·算法·dp·oi·信息学·原创题目·值得挑战的题目
Buke..1 小时前
【APP 逆向】哔哩哔哩 sign 参数逆向(下):OLLVM 混淆还原 sign 算法
java·javascript·爬虫·python·算法
闲研随记2 小时前
【文献阅读 ICLR 2026】RL算法:DECS
算法·llm·强化学习·iclr·rl
量化小c2 小时前
一行代码查 BTCUSDT 和 AAPL 最新价?QuantDash 统一多市场实时行情接口实战
后端·算法·github
机器人梦想家2 小时前
具身机器人视觉服务的异步回调与并发控制
数据库·算法·机器人
我命由我123453 小时前
人脸识别 - 人脸识别选帧
java·人工智能·python·算法·安全·java-ee·人脸识别
时针滴滴答啊3 小时前
最大子数组和
算法·leetcode·职场和发展
五月底_4 小时前
LIS算法
python·算法·最长子序列
Yfhonier4 小时前
【素数定理】素数个数的位数
c++·算法·素数
学学酱快乐4 小时前
2026年PMP考试生命周期选择决策树精讲:从需求判断到混合型统一框架的应试全攻略
算法·决策树·机器学习·pmp新版考试大纲·pmp新题型·pmp培训哪家好·pmp培训机构推荐