Pandas:我如何删除具有单列不同值的重复项,同时保留所述不同的值



我看到了这个问题,我不明白它是什么意思。它与在数据框旋转后将多个索引扁平化为单个索引有关。

我目前正在研究图像处理,我有一个数据帧,有重复的行,但是,每个重复的行有一个不同的值为"主题"。

:

我想删除这些重复的行,即使它们具有不同的值,并将所有重复的所有不同值连接到单个列中,即Aortic enlargement|Pulmonary fibrosis|Atelectasis

:

这实际上是一个多部分的问题。

  1. 我怎样才能达到上述目标?

  2. 谁能解释一下我所链接的问题,以完全理解它?

额外信息:

我有一个模拟csv文件,如果你需要完全理解我的意思,你可以访问。

将此数据框架视为MRE:

>>> df
image_id          class_name
0  47ed17dcb2cbeec15182ed335a8b5a9e         Nodule/Mass  # <- dup 1
1  47ed17dcb2cbeec15182ed335a8b5a9e  Aortic enlargement  # <- dup 1
2  47ed17dcb2cbeec15182ed335a8b5a9e  Pulmonary fibrosis  # <- dup 1
3  7c1add6833d5f0102b0d3619a1682a64        Lung Opacity  # <- dup 2
4  7c1add6833d5f0102b0d3619a1682a64  Pulmonary fibrosis  # <- dup 2
5  5550a493b1c4554da469a072fdfab974          No finding  # <- dup 3
6  5550a493b1c4554da469a072fdfab974          No finding  # <- dup 3

要得到预期的结果,您需要按image_id分组,并将class_name中的所有值连接在一起,并用' | '分隔:

>>> df.groupby('image_id')['class_name'].apply(lambda x: ' | '.join(sorted(set(x))))
image_id
47ed17dcb2cbeec15182ed335a8b5a9e    Aortic enlargement | Nodule/Mass | Pulmonary f...
5550a493b1c4554da469a072fdfab974                                           No finding
7c1add6833d5f0102b0d3619a1682a64                    Lung Opacity | Pulmonary fibrosis

使用set删除相同image_idsortedclass_name副本,以获得class_name的字典顺序。

您可以使用MultiIndex来正确显示您的重复行。试一试:

>>> df.set_index(['image_id', 'class_name']).sort_index()
class_id rad_id  x_min  y_min  x_max  y_max  width  height
image_id                         class_name
000434271f63a053c4128a0ba6352c7f No finding        14     R6    NaN    NaN    NaN    NaN   2336    2836
No finding        14     R2    NaN    NaN    NaN    NaN   2336    2836
No finding        14     R3    NaN    NaN    NaN    NaN   2336    2836
00053190460d56c53cc3e57321387478 No finding        14    R11    NaN    NaN    NaN    NaN   1994    2430
No finding        14     R2    NaN    NaN    NaN    NaN   1994    2430
...                                               ...    ...    ...    ...    ...    ...    ...     ...
fff0f82159f9083f3dd1f8967fc54f6a No finding        14     R9    NaN    NaN    NaN    NaN   2048    2500
No finding        14    R14    NaN    NaN    NaN    NaN   2048    2500
fff2025e3c1d6970a8a6ee0404ac6940 No finding        14     R1    NaN    NaN    NaN    NaN   1994    2150
No finding        14     R5    NaN    NaN    NaN    NaN   1994    2150
No finding        14     R2    NaN    NaN    NaN    NaN   1994    2150
[67914 rows x 8 columns]

相关内容

  • 没有找到相关文章

最新更新