首页 > 编程问答 >Pandas GroupBy - 仅显示具有多个唯一特征值的组

Pandas GroupBy - 仅显示具有多个唯一特征值的组

时间:2024-07-30 08:15:54浏览次数:16  
标签:python pandas compare unique pandas-groupby

我有一个 DataFrame df_things 看起来像这样,我想在训练之前预测分类的质量

A    B     C      CLASS
-----------------------
al1  bal1  cal1   Ship
al1  bal1  cal1   Ship
al1  bal2  cal2   Ship
al2  bal2  cal2   Cow
al3  bal3  cal3   Car
al1  bal2  cal3   Car
al3  bal3  cal3   Car

我想按类对行进行分组,以便我了解特征的分布。我这样做(例如,在“B”列上),

df_B = df_things.groupby('CLASS').B.value_counts()

这给了我结果

CLASS  B 
-------------
ship   bal1  2 
       bal2  1
cow    bal2  2
car    bal2  1
       bal3  2

我想要的是仅可视化具有多个值的组,使其看起来像这样:| ||我有点卡住了,有什么想法吗?

CLASS  B 
-------------
ship   bal1  2 
       bal2  1
car    bal2  1
       bal3  2

I'm a little bit stuck, so any ideas?


当然,我可以帮助解决这个问题。可以使用 Pandas 的 groupby filter 函数来实现这一点。以下是如何操作:

import pandas as pd

# 创建示例 DataFrame
df_things = pd.DataFrame({
    'A': ['al1', 'al1', 'al1', 'al2', 'al3', 'al1', 'al3'],
    'B': ['bal1', 'bal1', 'bal2', 'bal2', 'bal3', 'bal2', 'bal3'],
    'C': ['cal1', 'cal1', 'cal2', 'cal2', 'cal3', 'cal3', 'cal3'],
    'CLASS': ['Ship', 'Ship', 'Ship', 'Cow', 'Car', 'Car', 'Car']
})

# 按“CLASS”和“B”列对 DataFrame 进行分组,并获取每个组的大小
df_grouped = df_things.groupby(['CLASS', 'B']).size()

# 过滤组,仅保留“CLASS”列中具有多个唯一值的组
df_filtered = df_grouped.groupby('CLASS').filter(lambda x: len(x) > 1)

# 将结果转换为所需的格式
df_result = df_filtered.reset_index(name='count')

print(df_result)

这将打印以下输出:

  CLASS     B  count
0   Car  bal2      1
1   Car  bal3      2
2   Ship  bal1      2
3   Ship  bal2      1

在这个代码中:

  1. 我们首先按“CLASS”和“B”列对 DataFrame 进行分组。
  2. 然后,我们使用 groupby('CLASS').filter() 函数仅保留“CLASS”列中具有多个唯一“B”值的组。
  3. 最后,我们使用 reset_index() 函数将结果转换为所需的格式。

此代码将为提供具有多个唯一特征值的组列表,从而能够进行需要的可视化。

标签:python,pandas,compare,unique,pandas-groupby
From: 53979178

相关文章

  • Python多重处理,如何避免创建具有百万个对象的元组
    python多处理新手。我有一项任务,涉及访问网络服务数百万次并将响应保存在文件中(每个请求都有单独的文件)。我已经得到了高级工作代码,但对一些事情没有感到困惑。以下两种语法有什么区别?pool=Pool(processes=4)pool.starmap(task,listOfInputParametersTu......
  • Python OpenCV - 显示坏像素检查测试
    我想找到显示器中存在的每个坏像素。坏像素可能是颜色不正确的像素,或者像素只是黑色。显示屏的尺寸为160x320像素。所以如果显示效果好的话,必须有160*320=51200像素。如果显示器没有51200像素,那就是坏的。另外,我想知道每个坏像素的位置。一旦拍摄的图像太大,我将共享一个......
  • 在python日志输出的每一行前面添加变量缩进
    我正在将日志记录构建到一个Python应用程序中,我希望它是人类可读的。目前,调试日志记录了调用的每个函数以及参数和返回值。这意味着,实际上,嵌套函数调用的调试日志可能如下所示:2024-07-2916:52:26,641:DEBUG:MainController.initialize_componentscalledwithargs<control......
  • 使用 DQN 实现 pong,使用 python 中的特征向量而不是像素。我的 DQNA 实现代码正确吗,因
    我正在致力于使用OpenAI的Gym为Pong游戏实现强化学习(RL)环境。目标是训练人工智能代理通过控制球拍来打乒乓球。代理收到太多负面奖励,即使它看起来移动正确。具体来说,奖励函数会惩罚远离球的智能体,但这种情况发生得太频繁,即使球朝球拍移动时似乎也会发生。观察......
  • Python CDLL 无法加载两次
    我正在尝试用python创建一个密码管理器,但遇到了一个问题,一旦加载了一种类型的dll,我就无法加载不同的dll,在这个示例中,我加载了一个dll,并尝试解密加密的密码数据,它工作正常,直到我加载另一个不同的nss3.dll文件,此时它给我一个错误:“过程入口点HeapAlloc无法位于动态链......
  • 你能将 HTTPS 功能添加到 python Flask Web 服务器吗?
    我正在尝试构建一个Web界面来模拟网络设备上的静态接口,该网络设备使用摘要式身份验证和HTTPS。我想出了如何将摘要式身份验证集成到Web服务器中,但我似乎无法找到如何使用FLASK获取https,如果您可以向我展示如何实现,请评论我需要使用下面的代码做什么来实现这一点。from......
  • Python:比较 csv 文件并打印相似之处
    我需要比较两个csv文件并打印出它们的相似之处。第一个文件有名称和浓度,第二个文件就像只有名称的“最佳”列表,我需要绘制相似性图表。例如,这就是我的列表的样子:file1-old_file.csvname_id,conc_test1,conc_test2name1,####,####name2,###......
  • Python 类交叉引用
    我用Python创建了一个数独游戏。我有一个:单元格类-“保存”数字可能性单元格组-保存单元格类实例我使用这些组在数独中运行行、列和正方形功能。每个单元格包含所有组,他属于classCell:def__init__(groups):self.groups=groupscla......
  • 如何修复我的 Python Azure Function DevOps Pipeline 上的“找到 1 个函数(自定义)加载
    我正在尝试使用AzureDevOps构建管道将PythonAzureFunction部署到Azure门户。由于某种原因,代码被部署到服务器,但我在尝试访问端点时收到404错误。我收到一个错误,显示1functionsfound(Custom)0functionsloaded,以及在服务器上显示ModuleNotFound......
  • 将 dat 文件中的数据标准化为 pandas 数据框
    我有一个显示数据示例的文件,如下所示CARREPORTAREA1CarHondaCoun......