我有一个2列的DataFrame,‘id’和‘recordhash’,我用它来比较记录.我可以使用以下命令获取与‘recordhash’匹配的记录列表:

dups = df[df['recordhash'].duplicated(keep=False).sort_values('recordhash')

但它们的输出为:

id      recordhash
------------------
1        ab15
10       ab15

我想将它们显示为:

matching   recordhash
---------------------
1, 10       ab15

这看起来很简单,但我一直没有找到它.

推荐答案

grouped = df.groupby('recordhash')['id'].apply(lambda x: ', '.join(map(str, x))).reset_index()        
grouped.rename(columns={'id': 'matching'}, inplace=True)

Python相关问答推荐

零填充2D数组上的Numpy切片

在Python中添加期货之间的延迟

隐藏QComboBox的指示器(qdarkstyle)

如何使用关键参数按列对Pandas rame进行排序

使用Python进行网页抓取,没有页面

inspect_asm不给出输出

如何使用Selenium访问svg对象内部的元素

如何终止带有队列的Python进程?+ 队列大小的错误?

如何在Python中使用时区夏令时获取任何给定本地时间的纪元值?

如何根据条件在多指标框架上进行groupby

Locust请求中的Python和参数

try 与gemini-pro进行多轮聊天时出错

使用FASTCGI在IIS上运行Django频道

Polars LazyFrame在收集后未返回指定的模式顺序

Deliveryter Notebook -无法在for循环中更新matplotlib情节(保留之前的情节),也无法使用动画子功能对情节进行动画

沿着数组中的轴计算真实条目

如何列举Pandigital Prime Set

Polars asof在下一个可用日期加入

未调用自定义JSON编码器

OpenCV轮廓.很难找到给定图像的所需轮廓