我看到了這個問題,我無法理解它的含義。它與在對資料框架進行透視后將多個索引平移為一個索引有關。
我目前正在進行影像處理,我有一個資料框架,其中有重復的行,但是,每個重復的行都有不同的 "主題 "值。
目標:
我想洗掉這些重復的行,即使它們有不同的值,并將所有重復行的不同值連接到一個單一的列,即主動脈擴大|肺纖維化|肺栓塞。
問題:
這基本上是一個多部分的問題。
我如何才能實作上述目標?
。
誰能用拉曼語解釋一下我所鏈接的問題,以便完全理解它?
額外資訊:
我有一個模擬的csv檔案,如果你需要完全理解我的意思,你可以訪問它。
uj5u.com熱心網友回復:
將這個資料框架視為MRE:
>>> df
image_id class_name
0 47ed17dcb2cbeec15182ed335a8b5a9e Nodule/Mass # <- dup 1
1 47ed17dcb2cbeec15182ed335a8b5a9e 主動脈擴大 # <- dup 1
2 47ed17dcb2cbeec15182ed335a8b5a9e 肺纖維化 # <- dup 1
3 7c1add6833d5f0102b0d3619a1682a64 肺不透明 # <- dup 2
4 7c1add6833d5f0102b0d3619a1682a64 肺部纖維化 # <- dup 2
5 5550a493b1c4554da469a072fdfab974 沒有發現 # <- dup 3
6 5550a493b1c4554da469a072fdfab974 沒有發現 # <- dup 3
為了得到預期的結果,你需要按image_id分組,并將class_name中的所有值連接在一起,并以' | '分隔:
>>> df. groupby('image_id')['class_name'].apply(lambda x。' | '.join(sorted(set(x)))))
image_id
47ed17dcb2cbeec15182ed335a8b5a9e 主動脈擴大|結節/腫塊|肺癌。
5550a493b1c4554da469a072fdfab974 沒有發現
7c1add6833d5f0102b0d3619a1682a64 肺不透明|肺纖維化
使用set洗掉class_name重復的相同image_id和sorted獲得class_namelexicographical ordered。
Update
你可以使用MultiIndex來正確顯示你重復的行。試試吧:
>>> df.set_index(['image_id'/span>, 'class_name'/span>]) .sort_index()
class_id rad_id x_min y_min x_max y_max width height
image_id class_name
000434271f63a053c4128a0ba6352c7f 沒有找到 14 R6 NaN NaN NaN 2336 2836
沒有發現 14 R2 NaN NaN NaN 2336 2836
沒有發現 14 R3 NaN NaN NaN 2336 2836
00053190460d56c53cc3e57321387478 沒有發現 14 R11 NaN NaN NaN 1994 2430
沒有發現 14 R2 NaN NaN NaN 1994 2430
... ... ... ... ... ... ... ... ... ... ... ... ...
fff0f82159f9083f3dd1f8967fc54f6a 沒有發現 14 R9 NaN NaN NaN 2048 2500
沒有發現 14 R14 NaN NaN NaN 2048 2500
fff2025e3c1d6970a8a6ee0404ac6940 沒有發現 14 R1 NaN NaN NaN 1994 2150
沒有發現 14 R5 NaN NaN NaN 1994 2150
沒有發現 14 R2 NaN NaN NaN 1994 2150
[67914 行 x 8 列]
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/310236.html
標籤:
