当前位置: 首页 > article >正文

【Python】Pandas的一系列经典操作(非常实用)

Pandas的复杂操作

  • 1. 统计某列中,所有值出现的次数
  • 2. 统计某列中,位于特定区间内值的数量
  • 3. 统计某列中,位于特定区间内对应另一列的平均值
  • 4. 统计某列数值的前十名,对应另一列的值

1. 统计某列中,所有值出现的次数

import pandas as pd

# 创建一个示例数据集
data = {'A': [1, 2, 2, 3, 1, 2, 3, 1, 1, 2, 3, 4]}
df = pd.DataFrame(data)

# 使用 value_counts() 函数统计 'A' 列的值出现次数
value_counts = df['A'].value_counts()

print(value_counts)

代码说明:
上述代码将创建一个包含一列名为’A’的DataFrame,并使用value_counts()函数计算各个值在’A’列中出现的次数。

运行结果:

1    4
2    4
3    3
4    1
Name: A, dtype: int64

这意味着值1出现了4次,值2出现了4次,值3出现了3次,值4出现了1次。

2. 统计某列中,位于特定区间内值的数量

import pandas as pd

# 创建一个示例数据集
data = {'A': [1, 2, 2, 3, 1, 2, 3, 1, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]}
df = pd.DataFrame(data)

# 定义要统计的区间
bins = [0, 5, 10]

# 使用 pd.cut() 函数对 'A' 列进行分箱
df['bin'] = pd.cut(df['A'], bins)

# 使用 value_counts() 函数统计每个区间的数量
bin_counts = df['bin'].value_counts()

# 输出结果
print(bin_counts)

代码说明:
在这个例子中,我们首先创建了一个包含一列名为’A’的DataFrame。接下来,我们定义了一个区间列表bins,表示我们希望统计介于0到5(含5)之间的值以及介于5到10(含10)之间的值。
然后,我们使用pd.cut()函数对’A’列进行分箱,并将结果保存在新列bin中。最后,我们使用value_counts()函数统计每个区间的数量。

运行结果:

(0, 5]      12
(5, 10]      6
Name: bin, dtype: int64

3. 统计某列中,位于特定区间内对应另一列的平均值

import pandas as pd

# 创建一个示例数据集
data = {
    'A': [1, 2, 2, 3, 1, 2, 3, 1, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10],
    'B': [10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 110, 120, 130, 140, 150, 160, 170, 180]
}
df = pd.DataFrame(data)

# 定义要统计的区间
bins = [0, 5, 10]

# 使用 pd.cut() 函数对 'A' 列进行分箱
df['bin'] = pd.cut(df['A'], bins)

# 使用 groupby() 函数按照分箱分组,并计算每组中 'B' 列的平均值
bin_means = df.groupby('bin')['B'].mean()

# 输出结果
print(bin_means)

代码说明:
在这个例子中,我们首先创建了一个包含两列名为’A’和’B’的DataFrame。接下来,我们定义了一个区间列表bins,表示我们希望统计介于0到5(含5)之间的值以及介于5到10(含10)之间的值。

然后,我们使用pd.cut()函数对’A’列进行分箱,并将结果保存在新列bin中。接着,我们使用groupby()函数将数据按照分箱分组,并使用mean()函数计算每个组中’B’列的平均值。

运行结果:

bin
(0, 5]      55.0
(5, 10]    145.0
Name: B, dtype: float64

4. 统计某列数值的前十名,对应另一列的值

import pandas as pd

# 创建一个示例数据集
data = {
    'A': [1, 2, 2, 3, 1, 2, 3, 1, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10],
    'B': ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r']
}
df = pd.DataFrame(data)

# 根据列 'A' 对 DataFrame 进行降序排序
df_sorted = df.sort_values(by='A', ascending=False)

# 获取前十名
top_10 = df_sorted.head(10)

# 提取前十名对应的列 'B' 的值
top_10_b_values = top_10['B']

# 输出结果
print(top_10_b_values)

代码说明:
在这个例子中,我们首先创建了一个包含两列名为’A’和’B’的DataFrame。然后,我们根据’A’列对DataFrame进行降序排序,接着使用head()函数获取前十名。最后,我们提取前十名对应的’B’列的值。

运行结果:

17    r
16    q
15    p
14    o
13    n
12    m
11    l
10    k
9     j
8     i
Name: B, dtype: object

http://www.kler.cn/a/17483.html

相关文章:

  • Python——NumPy库的简单用法,超级详细教程使用
  • 【C语言】值传递和地址传递
  • 【大数据学习 | HBASE高级】rowkey的设计,hbase的预分区和压缩
  • 【安全通信】告别信息泄露:搭建你的开源视频聊天系统briefing
  • 优化时钟网络之时钟抖动
  • 基于Java Web的传智播客crm企业管理系统的设计与实现
  • 阿里云Alibaba Cloud Linux镜像系统介绍及常见问题解答FAQ
  • Scrum敏捷开发和项目管理流程及工具
  • 量子退火Python实战(3):投资组合优化(Portfolio) MathorCup2023特供PyQUBO教程
  • 【五一创作】ERP实施-委外业务-委外采购业务
  • Log4j.properties配置详解
  • 代码随想录复习 203 移除链表元素
  • nssctf web (3)
  • 八股+面经
  • 一个go http和grpc客户端库
  • Zigbee 无线串口通信模块( DL-22 )
  • 【Python入门篇】——Python基础语法(标识符与运算符)
  • 文献集锦 | 非因生物空间多组学技术在头颈部肿瘤中的研究策略
  • 7.3 有源滤波电路(1)
  • Springcloud--docker快速入门
  • k8s DCGM GPU采集指标项说明
  • 操作系统之死锁处理策略
  • 体验 nanoGPT
  • PWLCM分段线性混沌映射
  • 日语学习(一)
  • flink-on-yarn两种提交模式及其区别