我遇到了一个问题,我必须找到出现次数最多的“详细信息”(“ID”计数),用于特定的“单元”和“功能”
因此,在以下示例中,对于单元= 0011,功能= 0001,大多数“ID”与细节= 546545153113131相关联。类似地,对于单元= 0011,功能= 0026,大多数“ID”与细节= 546545153113132相关联。对于单元= 0012,功能= 0001,大多数“ID”与详细资料= 546545153113131相关联。对于单元= 0012,功能= 0026,大多数“ID”与详细资料= 546545153113132相关联。
这里的数据框相当大,包含5百万行。我正在从数据框中的文本文件阅读这些数据。
import pandas as pd
# initialize list of lists
data = [['000000000001', '0011','0001','546545153113131'],
['000000000002', '0011','0026','546545153113132'],
['000000000004', '0011','0001','546545153113133'],
['000000000005', '0011','0001','546545153113131'],
['000000000006', '0012','0001','546545153113131'],
['000000000007', '0012','0026','546545153113132'],
['000000000009', '0012','0001','546545153113133'],
['000000000010', '0012','0001','546545153113131']
]
# Create the pandas DataFrame
df = pd.DataFrame(data, columns=['ID', 'UNIT', 'FUNCTION', 'DETAILS'])
df.sort_values(by=['ID', 'UNIT', 'FUNCTION'], ascending=[True,True,True])
df.groupby(['UNIT', 'FUNCTION','DETAILS']).count()
上面的代码给了我这个-
ID
UNIT FUNCTION DETAILS
0011 0001 546545153113131 2
546545153113133 1
0026 546545153113132 1
0012 0001 546545153113131 2
546545153113133 1
0026 546545153113132 1
我所期待的是一个数据框架,它可以给予我这个-
UNIT FUNCTION DETAILS ID
0011 0001 546545153113131 2
0011 0026 546545153113132 1
0012 0001 546545153113131 2
0012 0026 546545153113132 1
我尝试了几个解决方案-GroupBy pandas DataFrame and select most common value,没有工作。我是一个Python初学者和道歉,如果我写的没有多大意义。
1条答案
按热度按时间soat7uwm1#
我建议再次按
['UNIT', 'FUNCTION']
分组,并且只保留ID
具有最大值的第一行:输出量: