Python Pandas 列数据筛选方法汇总

数据准备:

import pandas as pd
# 假设有 5 个人,分别参加了 4 门课程,获得了对应的分数
data = {'name' : pd.Series(['Alice', 'Bob', 'Cathy', 'Dany', 'Ella']),
        'Math_A' : pd.Series([1.1, 2.2, 3.3, 4.4, 5]),
        'English_A' : pd.Series([3, 2.6, 2, 1.7, 3]),
        'Math_B' : pd.Series([1.7, 2.5, 3.6, 2.4, 5]),
        'English_B' : pd.Series([5, 2.6, 2.4, 1.3, 3]),
     }

df = pd.DataFrame(data)
print(df)

** 运行结果:**

    name  Math_A  English_A  Math_B  English_B
0  Alice     1.1        3.0     1.7        5.0
1    Bob     2.2        2.6     2.5        2.6
2  Cathy     3.3        2.0     3.6        2.4
3   Dany     4.4        1.7     2.4        1.3
4   Ella     5.0        3.0     5.0        3.0

一、筛选得到指定的列

1.1 根据 label 选择特定的几列

print(df[['name', 'Math_A', 'Math_B']])
# 注意这里是 双重 []

运行结果:

    name  Math_A  Math_B
0  Alice     1.1     1.7
1    Bob     2.2     2.5
2  Cathy     3.3     3.6
3   Dany     4.4     2.4
4   Ella     5.0     5.0

1.2 选择单列的两种方式

print(df['name'])
# 注意这里就是 单 []
print(df.name)

运行结果:

0    Alice
1      Bob
2    Cathy
3     Dany
4     Ella
Name: name, dtype: object
0    Alice
1      Bob
2    Cathy
3     Dany
4     Ella
Name: name, dtype: object

1.3 通过正则表达式选择列

print(df.filter(regex='B$')) 
# 选择以 'B' 为结尾的 label

运行结果:

   Math_B  English_B
0     1.7        5.0
1     2.5        2.6
2     3.6        2.4
3     2.4        1.3
4     5.0        3.0

常用正则表达式:
在这里插入图片描述

二、同时对 行 和 列 进行筛选

2.1 通过切片 df.loc[ : , : ]

print(df.loc[:2,'English_A':'English_B'])
# 注意,这里的切片 与 Python 本身的不同,包含了结尾!
# 所以这个例子中包含了 第 2 行 和 'English_B' 列

运行结果:

   English_A  Math_B  English_B
0        3.0     1.7        5.0
1        2.6     2.5        2.6
2        2.0     3.6        2.4

2.2 通过选择 序号 选择列 df.iloc[ : , : ]

print(df.iloc[:2 , [0,3]])
# 注意,这里的切片没有包含第 2 行!同时选择了 第 0 列 和 第 3 列
# 如果想要 同时选择 0~3 列(共4列),要使用 :4

运行结果:

    name  Math_B
0  Alice     1.7
1    Bob     2.5

2.3 对 特定 列的数据进行逻辑筛选

print(df.loc[df['English_A'] > 2, ['name', 'English_A']])
# 这里我希望查看 'English_A' 这个科目分数 2 分以上有哪些人

运行结果:

    name  English_A
0  Alice        3.0
1    Bob        2.6
4   Ella        3.0
  • 20
    点赞
  • 112
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python中的pandas库是进行数据分析和处理的重要工具。它提供了灵活且高效的数据结构,如DataFrame和Series,以及许多内置的函数和方法,用于对数据进行操作、转换、过滤和聚合等。 下面是一个简单的示例,展示了如何使用pandas进行数据分析: ```python import pandas as pd # 读取数据文件(可以是CSV、Excel、数据库等) data = pd.read_csv('data.csv') # 查看数据的前几行 print(data.head()) # 查看数据的基本信息,包括名、数据类型和非空数量等 print(data.info()) # 描述性统计分析,包括计数、均、标准差、最小、最大等 print(data.describe()) # 筛选数据,选择满足条件的子集 filtered_data = data[data['column'] > 10] # 对数据进行排序 sorted_data = data.sort_values(by='column', ascending=False) # 分组统计,计算每个类别的平均、总和等 grouped_data = data.groupby('category')['column'].mean() # 数据聚合,对数据进行统计汇总 aggregated_data = data.agg({'column1': 'sum', 'column2': 'mean'}) # 数据可视化,绘制柱状图、折线图、散点图等 data.plot(kind='bar', x='category', y='value') # 保存结果到文件 filtered_data.to_csv('filtered_data.csv', index=False) # 其他更多功能,如数据清洗、缺失处理、合并数据集等 ``` 这只是pandas库的一小部分功能,你可以根据实际需求探索更多的功能和方法。希望这能帮助到你!如果还有其他问题,请继续提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值