转置列时按唯一值分组

2023-12-06

前几天我用两列数据问了类似的问题:

在 Python 中按唯一值对列进行分组

现在我有三栏。它们需要按 A 列分组,B 列作为标题值,C 列正确排序。

我的数据框如下所示:

    A   B   C
25115  20  45
25115  30  154
25115  40  87
25115  70  21
25115  90  74
26200  10  48
26200  20  414
26200  40  21
26200  50  288
26200  80  174
26200  90  54

但我需要这样结束:

       10   20   30   40   50   70   80   90
25115       45   154  87        21        74
26200  48   414       21   288       174  54

这会获取 C 列的值,但不会将 B 列作为行名称。

import pandas as pd
df = pd.DataFrame({'A':[25115,25115,25115,25115,25115,26200,26200,26200,26200,26200,26200],'B':[20,30,40,70,90,10,20,40,50,80,90],'C':[45,154,87,21,74,48,414,21,288,174,54]})
a = df.groupby('A')['C'].apply(lambda x:' '.join(x.astype(str)))

任何想法将不胜感激。


  • 选项1:

使用数据透视表:

df.pivot_table(values='C',index='A',columns='B')

Output

B        10     20     30    40     50    70     80    90
A                                                        
25115   NaN   45.0  154.0  87.0    NaN  21.0    NaN  74.0
26200  48.0  414.0    NaN  21.0  288.0   NaN  174.0  54.0
  • 选项2:

使用 set_index / unstack:

df.set_index(['A','B'])['C'].unstack()

Output:

B        10     20     30    40     50    70     80    90
A                                                        
25115   NaN   45.0  154.0  87.0    NaN  21.0    NaN  74.0
26200  48.0  414.0    NaN  21.0  288.0   NaN  174.0  54.0
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

转置列时按唯一值分组 的相关文章

  • XGBoost 产生预测结果和概率

    我可能正在文档中查看它 但我想知道 XGBoost 是否有办法生成结果的预测和概率 就我而言 我正在尝试预测多类分类器 如果我能返回Medium 88 那就太好了 分类器 中 预测概率 88 参数 params max depth 3 ob
  • Python daysBetweenDate

    我想我可能有一个无限循环 因为每当我运行代码时 我都会收到一条错误消息 它说 程序因使用 13 CPU 秒而关闭 整个代码 应该以日期作为输入并输出第二天 此代码假设所有月份都是 30 天 除了daysBetweenDates功能正常 其他
  • OpenCV Python 和 SIFT 功能

    我知道有很多关于Python and OpenCV但我没有找到有关这个特殊主题的帮助 我想提取SIFT关键点来自 python OpenCV 中的图像 我最近安装了 OpenCV 2 3 可以访问 SURF 和 MSER 但不能访问 SIF
  • 从日志文件 python 创建 csv 标题

    我的日志文件每行都包含一些信息 如下所示 Info1 NewOrder key 123 Info3 10 Info5 abc Info3 10 Info1 OldOrder key 456 Info6 xyz Info1 NewOrder
  • 使用 pybind11 修改 std::array 的默认值

    我的目标是修改在中声明的数组C struct并赋予默认值 我读过了this https pybind11 readthedocs io en stable advanced cast stl html making opaque types
  • 类型错误:不支持的类型

    我需要在 GPU 中运行代码的某些部分cupy代替numpy 所以 我只对这一行做了评论 import numpy as np并用这一行代替它import cupy as np 完整代码 from imutils video import
  • scrapy蜘蛛如何将值返回给另一个蜘蛛

    我正在爬行的网站包含许多玩家 当我点击任何玩家时 我都可以进入他的页面 网站结构是这样的
  • 如何在欧洲使用 Cloud Dataflow 区域终端节点?

    是否可以将 Google Cloud Platform Dataflow 作业的区域更改为欧洲 我已将管道区域设置为europe west1 d但我无法更改工作本身的区域 我尝试更改管道选项中的区域 但这会导致错误 并且只有默认区域有效 p
  • 正则表达式 - Python - 删除前导空格

    我使用正则表达式在文本文件中搜索 产品 一词 然后 我使用该搜索的起点和终点来查看该列并提取整数 有些实例 A 列 有我不想要的前导空格 我只想将数字 如 B 列中的数字 打印到文件中 没有前导空格 正则表达式中的正则表达式 有条件的 pr
  • 在地图类型中创建 DataFrame 分组列

    My 数据框具有以下结构 df spark createDataFrame B a 10 B b 20 C c 30 Brand Type Amount df show Brand Type Amount B a 10 B b 20 C c
  • 使用 ABCMeta 和 EnumMeta 的抽象枚举类[重复]

    这个问题在这里已经有答案了 简单的例子 目标是通过从两者派生的元类创建一个抽象枚举类abc ABCMeta and enum EnumMeta 例如 import abc import enum class ABCEnumMeta abc
  • 使用 South 更改 Django 模型列默认值

    我在 Django 项目中使用 South 和 Postgresql DB 我想更改一个模型字段的默认值以供继续使用 我不需要以前的记录 刚刚新记录 我是否需要为此进行迁移 或者只是更改模型 旧场详细信息 background style
  • 采用迭代器而不是可迭代的方法[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 关于迭代器和可迭代对象 仅是我的观察 如果我错了 请纠正我 大多数构造函数 数组类型 将迭代器作为质量构造函数 迭代器是显式创建的 或
  • API 调用时出现 UnicodeEncodeError (json)

    我正在尝试打印此 API 调用的结果 但收到 UnicodeEncodeError 可能是超级菜鸟问题 但非常感谢任何帮助 import http client import json api key hidden connection h
  • 为什么 `Pool.map()` 多处理中的内存消耗急剧增加?

    我正在对 pandas 数据帧进行多重处理 方法是将其拆分为多个数据帧 这些数据帧存储为列表 并且 使用Pool map 我将数据帧传递给定义的函数 我的输入文件约为 300 mb 因此小数据帧大约为 75 mb 但是 当多处理运行时 内存
  • Python记录多个模块记录器在主程序之外不起作用

    我的目标是从多个模块进行日志记录 同时仅在一个位置 主程序中 配置记录器 如图所示这个答案 https stackoverflow com questions 15727420 using python logging in multipl
  • 如何使用 google.oauth2 python 库?

    我试图对谷歌机器学习项目的安全预测端点进行简单的休息调用 但它找不到 google oauth2 模块 这是我的代码 import urllib2 from google oauth2 import service account Cons
  • Pandas - 过滤器和正则表达式搜索 DataFrame 的索引

    我有一个 DataFrame 其中列是 MultiIndex 索引是名称列表 即index Andrew Bob Calvin 我想创建一个函数来返回数据帧中使用名称 Bob 或以字母 A 开头或以小写字母开头的所有行 如何才能做到这一点
  • 在python中读取证书(.crt)和密钥(.key)文件

    因此 我使用 JIRA Python 模块连接到我公司的 JIRA 实例 它要求我为此传递证书和密钥 但是 使用 OpenSSL 模块 我无法读取本地证书和密钥来将其传递给请求 阅读代码如下 import OpenSSL crypto c
  • 为什么 Pytest 对夹具参数执行嵌套循环

    使用 Pytest 我想编写一个测试函数 该函数接受多个装置作为参数 每个灯具都有几个参数 例如 test demo py 中是一个函数test squared is less than 10需要固定装置 negative integer

随机推荐