如何根据 pandas 中的行值创建新列

2023-12-01

我有一个如下所示的数据框:

    time  speaker  label_1  label_2
0   0.25        1       10        4
1   0.25        2       10        5
2   0.50        1       10        6
3   0.50        2       10        7
4   0.75        1       10        8
5   0.75        2       10        9
6   1.00        1       10       11
7   1.00        2       10       12
8   1.25        1       11       13
9   1.25        2       11       14
10  1.50        1       11       15
11  1.50        2       11       16
12  1.75        1       11       17
13  1.75        2       11       18
14  2.00        1       11       19
15  2.00        2       11       20

“说话者”列生成 1 和 2,以在给定时间戳记下描绘 2 个说话者。我想从仅与一位发言者关联的“label_1”和“label_2”数据创建新列。请参阅下文了解所需的输出。

 time  spk_1_label_1  spk_2_label1  spk_1_label_2  spk_2_label_2
   0.25        10         10             4               5
   0.50        10         10             6               7
   0.75        10         10             8               9
   1.00        10         10            11               12    
   1.25        11         11            13               14
   1.50        11         11            15               16
   1.75        11         11            17               18
   2.00        11         11            19               20


首先我们使用pivot_table将我们的行旋转到列。然后我们通过字符串连接来创建所需的列名称list_comprehension and f-string:

piv = df.pivot_table(index='time', columns='speaker')
piv.columns = [f'spk_{col[1]}_{col[0]}' for col in piv.columns]

      spk_1_label_1  spk_2_label_1  spk_1_label_2  spk_2_label_2
time                                                            
0.25             10             10              4              5
0.50             10             10              6              7
0.75             10             10              8              9
1.00             10             10             11             12
1.25             11             11             13             14
1.50             11             11             15             16
1.75             11             11             17             18
2.00             11             11             19             20

如果要删除索引名称:

piv.rename_axis(None, inplace=True)

      spk_1_label_1  spk_2_label_1  spk_1_label_2  spk_2_label_2
0.25             10             10              4              5
0.50             10             10              6              7
0.75             10             10              8              9
1.00             10             10             11             12
1.25             11             11             13             14
1.50             11             11             15             16
1.75             11             11             17             18
2.00             11             11             19             20

Extra

如果您愿意,我们可以通过使用列名称作为展平列的前缀来使其更通用:

piv.columns = [f'{piv.columns.names[1]}_{col[1]}_{col[0]}' for col in piv.columns]

      speaker_1_label_1  speaker_2_label_1  speaker_1_label_2  speaker_2_label_2
time                                                                            
0.25                 10                 10                  4                  5
0.50                 10                 10                  6                  7
0.75                 10                 10                  8                  9
1.00                 10                 10                 11                 12
1.25                 11                 11                 13                 14
1.50                 11                 11                 15                 16
1.75                 11                 11                 17                 18
2.00                 11                 11                 19                 20

Notice:如果你的python版本f-strings, 我们可以用.format对于我们的字符串格式:

['spk_{}_{}'.format(col[0], col[1]) for col in piv.columns]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何根据 pandas 中的行值创建新列 的相关文章

  • 如何使用pycaffe重构caffe网络

    我想要的是 加载网络后 我将分解一些特定的图层并保存新的网络 例如 原网 数据 gt conv1 gt conv2 gt fc1 gt fc2 gt softmax New net 数据 gt conv1 1 gt conv1 2 gt c
  • 如何用 python 和 sympy 解决多元不等式?

    我对使用 python 和 Sympy 还很陌生 并且遇到了使用 sympy 解决多元不等式的问题 假设我的文件中有很多函数 如下所示 cst sqrt x 2 cst exp sqrt cst x 1 4 log log sqrt cst
  • 如何将条目中的部分文本加粗并更改其背景颜色?

    我正在创建一个基于 Tkinter 的 GUI 它有一个 Entry 小部件 我想将其文本的一部分加粗并更改其背景颜色 但我不知道我该怎么做 如果我使用文本小部件 我可以只使用标签 但看起来它们不能与条目小部件一起使用 此代码使用文本小部件
  • 使用正则表达式解析 Snort 警报文件

    我正在尝试使用 Python 中的正则表达式从 snort 警报文件中解析出源 目标 IP 和端口 和时间戳 示例如下 03 09 14 10 43 323717 1 2008015 9 ET MALWARE User Agent Win9
  • python ttk treeview:如何选择并设置焦点在一行上?

    我有一个 ttk Treeview 小部件 其中包含一些数据行 如何设置焦点并选择 突出显示 指定项目 tree focus set 什么也没做 tree selection set 0 抱怨 尽管小部件明显填充了超过零个项目 但未找到项目
  • python中函数变量的作用域

    假设我们有两个函数 def ftpConnect ftp FTP server ftp login ftp cwd path def getFileList ftpConnect files ftp nlst print files 如果我
  • VSCode pytest 测试发现失败

    Pytest 测试发现失败 用户界面指出 Test discovery error please check the configuration settings for the tests 输出窗口显示 Test Discovery fa
  • 如何在 Windows 上使用 Python 3.6 来安装 Python 2.7

    我想问一下如何使用pip install对于 Python 2 7 当我之前安装并使用 Python 3 6 时 我现在必须使用 Windows 上的 Python 版本 pip install 继续安装 Python 3 6 我需要使用以
  • 如何为多组精灵创建随机位置?

    我尝试使用 blit 和 draw 方法进行 for 循环 并为 PlayerSprite 和 Treegroup 使用不同的变量 for PlayerSprite in Treegroup surface blit PlayerSprit
  • 在 Mac 上安装 Pygame 到 Enthought 构建中

    关于在 Mac 上安装 Pygame 有许多未解答的问题 但我将在这里提出我的具体问题并希望得到答案 我在 Mac 上安装 Pygame 时遇到了难以置信的困难 我使用 Enthought 版本 EPD 7 3 2 32 位 它是我的默认框
  • 使用 python 将文本发送到带有逗号分隔符的列

    如何使用分隔符 在 Excel 中将一列分成两列 并使用 python 命名标题 这是我的代码 import openpyxl w openpyxl load workbook DDdata xlsx active w active a a
  • 在 Windows 上使用 IPython 笔记本时出现 500 服务器错误

    我刚刚在 Windows 7 Professional 64 位上全新安装了 IPython 笔记本 我采取的步骤是 从以下位置安装 Python 3 4 1http python org http python org gt pip in
  • 在 pip.conf 中指定多个可信主机

    这是我尝试在我的中设置的 etc pip conf global trusted host pypi org files pythonhosted org 但是 它无法正常工作 参考 https pip pypa io en stable
  • 是否可以写一个负的python类型注释

    这可能听起来不合理 但现在我需要否定类型注释 我的意思是这样的 an int Not Iterable a string Iterable 这是因为我为一个函数编写了一个重载 而 mypy 不理解我 我的功能看起来像这样 overload
  • Plotly:如何避免巨大的 html 文件大小

    我有一个 3D 装箱模型 它使用绘图来绘制输出图 我注意到 绘制了 600 个项目 生成 html 文件需要很长时间 文件大小为 89M 这太疯狂了 我怀疑可能存在一些巨大的重复 或者是由单个项目的 add trace 方法引起的 阴谋 为
  • 如何对字符串列表进行排序?

    在 Python 中创建按字母顺序排序的列表的最佳方法是什么 基本回答 mylist b C A mylist sort 这会修改您的原始列表 即就地排序 要获取列表的排序副本而不更改原始列表 请使用sorted http docs pyt
  • 将 Scikit-Learn OneHotEncoder 与 Pandas DataFrame 结合使用

    我正在尝试使用 Scikit Learn 的 OneHotEncoder 将 Pandas DataFrame 中包含字符串的列替换为 one hot 编码的等效项 我的下面的代码不起作用 from sklearn preprocessin
  • 从时间序列生成日期特征

    我有一个数据框 其中包含如下列 Date temp data holiday day 01 01 2000 10000 0 1 02 01 2000 0 1 2 03 01 2000 2000 0 3 30 01 2000 200 0 30
  • 如何使用 Django (Python) 登录表单?

    我在 Django 中构建了一个登录表单 现在我遇到了路由问题 当我选择登录按钮时 表单不会发送正确的遮阳篷 我认为前端的表单无法从 查看 py 文件 所以它不会发送任何 awnser 并且登录过程无法工作 该表单是一个简单的静态 html
  • 使用 numpy 加速 for 循环

    下一个 for 循环如何使用 numpy 获得加速 我想这里可以使用一些奇特的索引技巧 但我不知道是哪一个 这里可以使用 einsum 吗 a 0 for i in range len b a numpy mean C d e f b i

随机推荐

  • Angular 路由器 3 通配符匹配

    以下路由配置有什么问题 我总是被导航到 即使有一条路线app jungle import bootstrap from angular platform browser dynamic import RouterConfig provide
  • 阻止使用 .htaccess 访问 php 文件(文件夹),XMLHttpRequest 除外

    我有一个文件夹www mysite com page panel soascripts 其中有 10 个不同的 PHP 文件 我想阻止访问该文件夹脚本以及其中的 php 文件 除了X Requested With XMLHttpReques
  • 即使在获得开发人员许可证后,Visual Studio 2013(XAML?)设计器也会在所有 Windows Phone 项目上崩溃

    我的设计师开始崩溃 即使是在干净的项目上 错误信息如下 System Exception Package failed updates dependency or conflict validation Windows cannot ins
  • 与 SQL Server 建立连接时发生网络相关或特定于实例的错误

    我在网络服务器上托管我的 ASP NET 网站 但是上传后当我尝试访问我的网站时 http www vbi volvobusesindia com 然后出现以下错误 与网络相关或特定于实例的 建立时发生错误 连接到 SQL Server 服
  • 在python中生成真正的随机数[重复]

    这个问题在这里已经有答案了 Python函数生成真随机数 By true随机数也意味着每次运行 python 时生成的种子都是不同的 我该怎么做呢 生成随机数的方法有很多种 但有一个共同点 它们都需要外部输入 假设您使用像游戏一样的简单 R
  • 从 DOCX 中提取表

    我在使用 OpenXML C 解析 docx 文档时遇到一个问题 所以 这是我的步骤 1 加载 docx文档2 接收段落列表3 在每个段落中查找文本 图像和表格元素4 为每个文本和图像元素创建 html 标签5 将输出保存为 html 文件
  • Facebook 登录 - 停留在白色网页 SWIFT

    在我的 LoginViewController 中 我实现了 FBSDKLoginButtonDelegate 并导入了 FBSDKLoginKit 和 FBSDKCoreKit 我在 viewDidLoad 中的代码如下所示 settin
  • 如何在 Perl 中将文件创建时间与当前时间进行比较?

    我想比较 Perl 中的当前时间和文件创建时间 但两者的格式不同 本地时间的格式如下 22116291110813630 文件创建时间是 Today December 29 2008 2 38 37 PM 我如何比较哪个更大以及它们的差异
  • JQuery UI 选项卡 - 清除缓存选项卡

    我在给定页面上有一组 JQuery UI 选项卡 并将它们的缓存属性设置为 true 以减少发出的请求数量 我在选项卡之外还有一个选择列表 用于为加载选项卡的请求提供参数 问题 如果用户单击所有选项卡并加载所有选项卡 然后从选择列表中选择不
  • 使用 Timber (WordPress) 定位特定页面模板

    我正在尝试使用 Timber 文件 twig 在特定页面上输出一些 HTML 内容 我已经能够在主页上输出内容 但不能在特定页面上输出内容 我尝试了以下代码 if fn is page proprietes h5 class widget
  • PHP 关联数组中的项目不能以数字方式(即通过索引)访问吗?

    我试图理解为什么在我的带有查询字符串的页面上 代码 echo Item count count GET echo First item GET 0 结果是 项目数 3 第一项 PHP 关联数组是否与数值数组不同 因此它们的项无法通过索引访问
  • 无法在heroku上进行RDS查询

    我可以毫无问题地访问本地计算机上的 RDS postgresql 数据库 设置 py DATABASES default ENGINE django db backends postgresql psycopg2 NAME xxxxxxx
  • 使用 C# 在一个单元格中实现多种格式

    我想在工作簿的一个单元格中包含多种格式类型 例如我希望我的 A1 单元格显示 Name Aaron Kruger 当我以编程方式将名字 Aaron Kruger 添加到模板中时 它会自动使其变为粗体 所以它看起来像这样 姓名 亚伦 克鲁格
  • 在 Python 中使用 %f 和 strftime() 来获取微秒

    我正在尝试使用 strftime 达到微秒精度 这似乎可以使用 f 如所述here 但是 当我尝试以下代码时 import time import strftime from time print strftime H M S f 我得到了
  • 为什么 PHP 回显的文本会丢失格式?

    有什么想法为什么来自数据库的格式化文本在 php 中回显时会丢失其格式 即没有新行 谢谢 Use nl2br 浏览器会忽略新行 这就是为什么您看到的所有文本都没有换行符 nl2br 将新行转换为 br 在浏览器中显示为新行的标签 如果您想在
  • 从移动浏览器打开时的 URL 重定向/重写

    我们正在开发两个网站 一个是网络应用程序 另一个是移动应用程序 所以我的要求是创建一个重定向 URL 以供移动用户从 Web 应用程序重定向到移动应用程序 但文件夹或结构不同 对于 Web 应用程序来说是http testrequest c
  • Android 屏幕上有多个 Activity?

    所以问题是我需要创建一个屏幕 其中有一个地图和一个列表 但要拥有地图 我有 public class MyMapActivity extends MapActivity 我有一个清单 class MyListActivity extends
  • 如何使用 Graphql 从 Strapi 查询 Gatsby 中的多个图像

    我在 Strapi 上的项目内容类型上设置了一个名为图片的多媒体 图像 字段 并且添加了 2 个项目 每个项目的图片包含 4 张图像 我想使用 Graphql 在 Gatsby 中查询这些图像 这是我在 gatsby config js 中
  • PHP:理解字符串类型杂耍

    如果我设置 var to a string在 PHP 中 该变量的计算结果为true在任何条件下 var foo if var echo I will be printed else echo I will not be printed 我
  • 如何根据 pandas 中的行值创建新列

    我有一个如下所示的数据框 time speaker label 1 label 2 0 0 25 1 10 4 1 0 25 2 10 5 2 0 50 1 10 6 3 0 50 2 10 7 4 0 75 1 10 8 5 0 75 2