![](/img/trans.png)
[英]Grouping all rows of a pandas DataFrame(with many columns) with the same value in a given column
[英]Grouping rows with same column value on multiple columns
我需要找到一種方法來對一列中具有相同值的行進行分組,但是將行分組到多個列中。 我需要實現的是對代表單個對象的行進行分組,這些對象在不同的服務上具有不同的ID。
我有一個看起來像的熊貓數據框
SERV1 SERV2 SERV3 SERV4 SERV5 SERV6
8766 NaN NaN 0989 NaN NaN
8766 NaN 5434 NaN NaN NaN
NaN NaN 5434 3212 NaN NaN
NaN 1236 NaN NaN NaN 6543
NaN 3456 NaN 7862 NaN NaN
NaN NaN NaN 7862 NaN 4767
所需的數據框應該看起來像
SERV1 SERV2 SERV3 SERV4 SERV5 SERV6
[8766] NaN [5434] [0989,3212] NaN NaN
NaN [1236] NaN NaN NaN [6543]
NaN [3456] NaN [7862] NaN [4767]
列代表不同的服務,值代表僅對於該特定列而言唯一的ID(不同列上的相同值,可能會偶然發生,但不應視為代表相同的ID)。
我設法為每一列創建一個具有相應值的字典,但這與我想要的df不同。
通過使用
df = grouped.aggregate(lambda x: tuple(x))
我可以實現類似的功能,但它僅適用於將單個列分組,而不是將其鏈接到其他列,而是將所有實際上不屬於一起的NaN放在一起。
我正在尋找想法/解決方案。 謝謝。
尚未找到一個完整的熊貓解決方案,我已解決此問題,方法是使用networkx模塊,並使用connected_component_subgraphs函數提取子圖,然后將結果拆包到數據框中。 不是那么優雅,但它可以工作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.