如何标记相同的熊猫数据框行?

2024-02-08

我有一个像这样的大熊猫数据框:

log  apple   watermelon  orange  lemon  grapes

1      1         1         yes     0      0
1      2         0         1       0      0
1     True       0         0       0      2
2      0         0         0       0      2
2      1         1         yes     0      0
2      0         0         0       0      2
2      0         0         0       0      2
3     True       0         0       0      2
4      0         0         0       0      2.1
4      0         0         0       0      2.1

如何标记相同的行,例如:

log   apple   watermelon  orange  lemon  grapes   ID

1      1         1         yes     0      0      1
1      2         0         1       0      0      2
1     True       0         0       0      2      3
2      0         0         0       0      2      4
2      1         1         yes     0      0      1
2      0         0         0       0      2      4
2      0         0         0       0      2      4
3     True       0         0       0      2      3
4      0         0         0       0      2.1    5
4      0         0         0       0      2.1    5

我尝试过了:

df['ID']=df.groupby('log')[df.columns].transform('ID')

And

df['personid'] = df['log'].clip_upper(2) - 2*d.duplicated(subset='apple')
df

然而,上面的方法不起作用,因为我确实有很多列。

但它没有给我预期的输出。知道如何对这个数据框进行分组和标记吗?


Given

x = io.StringIO("""log  apple   watermelon  orange  lemon  grapes

1      1         1         yes     0      0
1      2         0         1       0      0
1     True       0         0       0      2
2      0         0         0       0      2
2      1         1         yes     0      0
2      0         0         0       0      2
2      0         0         0       0      2
3     True       0         0       0      2
4      0         0         0       0      2.1
4      0         0         0       0      2.1""")
df2 = pd.read_table(x, delim_whitespace=True)

您可以先使用transform用元组来制作每一行hashable并进行比较,然后使用索引和range创建唯一的 id

f = df2.transform(tuple,1).to_frame()
k = f.groupby(0).sum()
k['id'] = range(1,len(k.index)+1)

最后

df2['temp_key'] = f[0]
df2 = df2.set_index('temp_key')
df2['id'] = k.id
df2.reset_index().drop('temp_key', 1)

    log     apple   watermelon  orange  lemon   grapes  id
0   1       1       1           yes     0       0.0     1
1   1       2       0           1       0       0.0     2
2   1       True    0           0       0       2.0     3
3   2       0       0           0       0       2.0     4
4   2       1       1           yes     0       0.0     5
5   2       0       0           0       0       2.0     4
6   2       0       0           0       0       2.0     4
7   3       True    0           0       0       2.0     6
8   4       0       0           0       0       2.1     7
9   4       0       0           0       0       2.1     7
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何标记相同的熊猫数据框行? 的相关文章

随机推荐

  • .NET Core 捕获中间件中的 Json 反序列化错误

    我确信我错过了一些明显的东西 是否可以在 NET Core的默认中间件 反序列化器中处理JSON反序列化错误 我需要确保特定值是 JSON 原语而不是对象 数组 如果它不是原语 我想在请求到达控制器之前终止请求并返回适当的状态代码 控制器
  • Django CharField 没有空字符串

    有没有办法制作一个不接受空字符串的 CharField 或 TextField 我正在尝试使用blank False但它不工作 class Foo models Model title models CharField max length
  • iOS VoiceOver 在更改到下一个元素之前等待元素完成阅读

    我有一个按钮可以切换显示的标签 class ViewController UIViewController IBOutlet weak var label UILabel IBOutlet weak var button UIButton
  • Metal 内核在新款 MacBook Pro(2016 年末)GPU 上运行不正常

    我正在开发 macOS 项目 该项目使用 Swift 和 Metal 在 GPU 上进行图像处理 上周 我收到了新的 15 英寸 MacBook Pro 2016 年末 并注意到我的代码有一些奇怪的地方 应该写入纹理的内核似乎没有这样做 经
  • iOS 10.0 语音识别错误 kAFAssistantErrorDomain

    我尝试使用语音识别如下 let urlpath Bundle main pathForResource myvoice2 ofType m4a let url URL URL init fileURLWithPath urlpath let
  • .NET 多线程、易失性和内存模型

    假设我们有以下代码 class Program static volatile bool flag1 static volatile bool flag2 static volatile int val static void Main s
  • 关于全局/范围的 Ruby 方法查找

    我试图完全理解 Ruby 如何定位方法 符号 但当它涉及多个级别时 尤其是全局 文件范围 我感到很困难 当在类上显式调用方法时 有很多关于搜索类及其包含的模块的顺序的说明 因此确切地说是什么super每种情况下都会调用 但是当没有显式调用方
  • 如何在循环中命名和创建文件

    在 C 中 我想创建并打开文本文件以写入数据 但问题是我想即时命名文件 例如 FILE ptr for i 0 i lt 1000 i fopen s ptr i txt w operations to fill data into fil
  • JSHint 选项默认值的完整列表?

    我在哪里可以获得 JSHint 默认选项的完整列表 我尝试在网上搜索但找不到任何东西 编辑 我的意思是默认列表values for all选项 以防不清楚 你可以看看boolOptions valOptions and invertedOp
  • HQL 错误:连接所需的路径

    我一直在尝试这个查询的变体 但似乎无法实现这一点 我还参考了这篇文章 预计加入路径 休眠错误 https stackoverflow com questions 5759707 path expected for join nhiberna
  • C# 发送带有附件的电子邮件(图片)

    我的方法使用 SMTP 中继服务器发送电子邮件 一切正常 电子邮件已发送 除了附件 图像 以某种方式压缩 不存在并且无法从电子邮件中检索之外 该方法如下所示 public static bool SendEmail HttpPostedFi
  • GitHub API - 如何确定文件是否实际上是符号链接?

    通过 GitHub API 查询符号链接时 如果符号链接指向文件而不是目录 我会得到不同的结果 后者表现得更好 因为它会返回 type symlink 作为其 JSON 的一部分 而前者返回 type file 例子文件符号链接 https
  • 动态插入 3 个图像到水平滚动视图或 Viewpager

    下面显示了我正在寻找的图像 目前我正在使用视图寻呼机和圆圈指示器 在视图页面中 它仅显示单个图像 我想要在一个viewpager中显示三张图像 如图所示 当我滑动该页面时 再次从服务器加载三个不同的图像 并在下面显示文本 这个怎么做 对此有
  • 使用已知和未知字段反序列化 json

    给出以下 json 结果 默认的 json 结果有一组已知的字段 id 7908 name product name 但可以使用其他字段进行扩展 在本例中 unknown field name 1 and unknown field nam
  • jQuery - 选择具有特定样式的子项

    我不知道如何在以下示例中选择第一个跨度 div class sp span abc span span xyz span div 我尝试过使用这个 但没有成功 div sp span visibility hidden not work t
  • 使用 XCode 4.5 运行 iOS 5.1 模拟器时出现问题

    我最近将 XCode 升级到了 4 5 版本 现在当我尝试开发 iOS 5 0 5 1 的应用程序时遇到了问题 我开发了一个简单的 iPad 游戏 用户需要将图像与相应的单词进行匹配 所有这些项目都存储在 UIImageView 中 如果相
  • 适用于 iOS 8 和 iOS 9 的自定义 Unwind Segue

    我的问题是 如何让以下自定义展开转场在 iOS 9 之前版本的设备以及运行 iOS 9 的设备上工作 我有一个显示视图控制器的自定义 Segue 然后有一个相应的自定义展开 Segue 这段代码在 iOS 8 中运行良好 是通过创建 UIS
  • 将 jzy3d.canvas 转换为 awt.component

    我需要将 jzy3d 画布转换为 java awt component 我想使用 JCombobox 和按钮在框架中显示图表 但是当我想将画布转换为组件时 程序被删除 谢谢您的回答 我已经尝试过this https stackoverflo
  • Spring 5 WebFlux 中的缓存

    有没有办法在 Spring 5 中缓存来自 WebClient 的 Flux 我尝试过这个 但没有缓存任何东西 RestController SpringBootApplication EnableCaching public class
  • 如何标记相同的熊猫数据框行?

    我有一个像这样的大熊猫数据框 log apple watermelon orange lemon grapes 1 1 1 yes 0 0 1 2 0 1 0 0 1 True 0 0 0 2 2 0 0 0 0 2 2 1 1 yes 0