我有一个 Dataframe ,我试图创建新的列显示不同的组合在不同的组内的发生。我发现的解决方案是所有的组合值跨越2个或更多列,而不是一个。因此,希望有人能帮助。
样品DF:
╔════╦═════╗
║ id ║ tag ║
╠════╬═════╣
║ a ║ 1 ║
║ a ║ 1 ║
║ a ║ 2 ║
║ a ║ 2 ║
║ a ║ 3 ║
║ a ║ 3 ║
║ b ║ 2 ║
║ b ║ 2 ║
║ b ║ 2 ║
║ b ║ 3 ║
║ b ║ 3 ║
║ b ║ 3 ║
╚════╩═════╝
希望得到产出:
╔════╦═════╦═════╦═════╦═════╦═════╦═════╦═════╗
║ id ║ tag ║ 1,1 ║ 1,2 ║ 1,3 ║ 2,2 ║ 2,3 ║ 3,3 ║
╠════╬═════╬═════╬═════╬═════╬═════╬═════╬═════╣
║ a ║ 1 ║ 1 ║ 4 ║ 4 ║ 1 ║ 4 ║ 1 ║
║ a ║ 1 ║ 1 ║ 4 ║ 4 ║ 1 ║ 4 ║ 1 ║
║ a ║ 2 ║ 1 ║ 4 ║ 4 ║ 1 ║ 4 ║ 1 ║
║ a ║ 2 ║ 1 ║ 4 ║ 4 ║ 1 ║ 4 ║ 1 ║
║ a ║ 3 ║ 1 ║ 4 ║ 4 ║ 1 ║ 4 ║ 1 ║
║ a ║ 3 ║ 1 ║ 4 ║ 4 ║ 1 ║ 4 ║ 1 ║
║ b ║ 2 ║ 0 ║ 0 ║ 0 ║ 3 ║ 9 ║ 3 ║
║ b ║ 2 ║ 0 ║ 0 ║ 0 ║ 3 ║ 9 ║ 3 ║
║ b ║ 2 ║ 0 ║ 0 ║ 0 ║ 3 ║ 9 ║ 3 ║
║ b ║ 3 ║ 0 ║ 0 ║ 0 ║ 3 ║ 9 ║ 3 ║
║ b ║ 3 ║ 0 ║ 0 ║ 0 ║ 3 ║ 9 ║ 3 ║
║ b ║ 3 ║ 0 ║ 0 ║ 0 ║ 3 ║ 9 ║ 3 ║
╚════╩═════╩═════╩═════╩═════╩═════╩═════╩═════╝
示例df代码:
data = {
"id": ['a', 'a', 'a', 'a', 'a', 'a', 'b', 'b', 'b', 'b', 'b', 'b'],
"tag": [1, 1, 2, 2, 3, 3, 2, 2, 2, 3, 3, 3]}
df = pd.DataFrame(data)
澄清:“col“x,y”是按id”分组的标记值的组合,如@Chrysophylaxs(谢谢)所述。
忠告
1条答案
按热度按时间nzk0hqpo1#
我在这里得到了答案:
输出: