我有这样一些数据:
Data = {'codes': ['123456', '789654789', '789654789', '54126', '123456'],
'names': ['google.com', 'reddit.com', 'bbc.com', 'google.com', 'google.com']
}
df = pd.DataFrame(Data, columns = ['codes','names'])
我期望的结果是:
Data = {'codes': ['123456', '789654789', '54126'],
'names': ['(2)google.com', '(1)reddit.com|(1)bbc.com', '(1)google.com']
}
df = pd.DataFrame(Data, columns = ['codes','names'])
我的想法是不为每个代码/域组合指定行,而只是在第一列中保留唯一的代码,并在第二列中放置一个字符串,它将说明与它相关的特定域的manny条目以及在同一字符串中用逗号分隔的所有域。 现在我正在使用一个列表“df.codes.unique()”,并将其放入循环中,并在该循环中构造一个字符串。一旦我以一个代码结束,然后我继续到另一个代码,再到同一个代码。我有数百万行,这种方法非常慢。有什么有效的方法吗
首先使用crosstab进行计算,然后将非零和与列名连接起来。最后一行只是根据您的问题将结果序列转换为数据帧:
结果如下:
相关问题 更多 >
编程相关推荐