Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python—在一周中的所有日子对数据帧进行排序_Python_Sorting_Pandas_Dataframe - Fatal编程技术网

Python—在一周中的所有日子对数据帧进行排序

Python—在一周中的所有日子对数据帧进行排序,python,sorting,pandas,dataframe,Python,Sorting,Pandas,Dataframe,我有一个数据框,其中包含列说明、日期和计数 我申请了 df.sort_values(['Count'], ascending = False) 在其上生成以下输出: Count Day Error Description 261 4846 Thursday N25846 External EMERGENCY STOP 263 3993 Wednesday N25846 Exte

我有一个数据框,其中包含列
说明
日期
计数

我申请了

df.sort_values(['Count'], ascending = False)
在其上生成以下输出:

     Count        Day                       Error Description
261   4846   Thursday          N25846 External EMERGENCY STOP
263   3993  Wednesday          N25846 External EMERGENCY STOP
257   3303     Friday          N25846 External EMERGENCY STOP
504   3227  Wednesday                        N63 Handwheel? C
795   2954   Thursday       P873 ENCLOSURE DOOR CAN BE OPENED
797   2778  Wednesday       P873 ENCLOSURE DOOR CAN BE OPENED
791   2644     Friday       P873 ENCLOSURE DOOR CAN BE OPENED
796   2633    Tuesday       P873 ENCLOSURE DOOR CAN BE OPENED
262   2480    Tuesday          N25846 External EMERGENCY STOP
501   2157     Monday                        N63 Handwheel? C
601   2130   Thursday                P124 Magazine is running
597   2130     Friday                P124 Magazine is running
793   2047   Saturday       P873 ENCLOSURE DOOR CAN BE OPENED
503   1983    Tuesday                        N63 Handwheel? C
599   1961   Saturday                P124 Magazine is running
602   1921    Tuesday                P124 Magazine is running
792   1900     Monday       P873 ENCLOSURE DOOR CAN BE OPENED
603   1865  Wednesday                P124 Magazine is running
502   1705   Saturday                        N63 Handwheel? C
我想知道是否有一种方法可以对数据框进行排序,以显示一周中所有天数的顶级错误分布。 预期输出为:(假设
N25846外部紧急停止
是顶部错误,然后是
N63手轮?C
,依此类推。)


您可以使用groupby、join和sort来完成此操作。例如:

totals = df.groupby('Error Description').sum()

joined = df.join(totals, on='Error Description', rsuffix='_total')

result = joined.sort_values(['Count_total', 'Count'], ascending=False)
输出是

>>> print(result)

     Count        Day                  Error Description  Count_total
795   2954   Thursday  P873 ENCLOSURE DOOR CAN BE OPENED        14956
797   2778  Wednesday  P873 ENCLOSURE DOOR CAN BE OPENED        14956
791   2644     Friday  P873 ENCLOSURE DOOR CAN BE OPENED        14956
796   2633    Tuesday  P873 ENCLOSURE DOOR CAN BE OPENED        14956
793   2047   Saturday  P873 ENCLOSURE DOOR CAN BE OPENED        14956
792   1900     Monday  P873 ENCLOSURE DOOR CAN BE OPENED        14956
261   4846   Thursday     N25846 External EMERGENCY STOP        14622
263   3993  Wednesday     N25846 External EMERGENCY STOP        14622
257   3303     Friday     N25846 External EMERGENCY STOP        14622
262   2480    Tuesday     N25846 External EMERGENCY STOP        14622
601   2130   Thursday           P124 Magazine is running        10007
597   2130     Friday           P124 Magazine is running        10007
599   1961   Saturday           P124 Magazine is running        10007
602   1921    Tuesday           P124 Magazine is running        10007
603   1865  Wednesday           P124 Magazine is running        10007
504   3227  Wednesday                   N63 Handwheel? C         9072
501   2157     Monday                   N63 Handwheel? C         9072
503   1983    Tuesday                   N63 Handwheel? C         9072
502   1705   Saturday                   N63 Handwheel? C         9072

请注意,这与示例输出不匹配,但它是按总错误计数进行的正确排序。看看你的示例输出,也许你想用<代码> >()(<代码)>替换<代码> SUME()/<代码>,这对你的问题还不完全清楚。

< P>类似于JAJEVDP,考虑使用函数创建每个错误描述中最大计数的新列。然后,按它和错误进行排序

def maxcount(row):
    row['MaxCount'] = row['Count'].max()
    return row

df = df.groupby(['Error Description']).apply(maxcount) \
               .sort(['MaxCount', 'Error Description'], ascending=[0,0])
输出

Count        Day                  Error Description  MaxCount
 4846   Thursday     N25846 External EMERGENCY STOP      4846
 3993  Wednesday     N25846 External EMERGENCY STOP      4846
 3303     Friday     N25846 External EMERGENCY STOP      4846
 2480    Tuesday     N25846 External EMERGENCY STOP      4846
 3227  Wednesday                   N63 Handwheel? C      3227
 2157     Monday                   N63 Handwheel? C      3227
 1983    Tuesday                   N63 Handwheel? C      3227
 1705   Saturday                   N63 Handwheel? C      3227
 2954   Thursday  P873 ENCLOSURE DOOR CAN BE OPENED      2954
 2778  Wednesday  P873 ENCLOSURE DOOR CAN BE OPENED      2954
 2644     Friday  P873 ENCLOSURE DOOR CAN BE OPENED      2954
 2633    Tuesday  P873 ENCLOSURE DOOR CAN BE OPENED      2954
 2047   Saturday  P873 ENCLOSURE DOOR CAN BE OPENED      2954
 1900     Monday  P873 ENCLOSURE DOOR CAN BE OPENED      2954
 2130   Thursday           P124 Magazine is running      2130
 2130     Friday           P124 Magazine is running      2130
 1961   Saturday           P124 Magazine is running      2130
 1921    Tuesday           P124 Magazine is running      2130
 1865  Wednesday           P124 Magazine is running      2130

您应该计算Count_max,然后根据Count_max和Count进行排序。这会产生上面的表格。是的,我在回答的最后提到了这一点。我的解决方案回答了我解释的问题。
Count        Day                  Error Description  MaxCount
 4846   Thursday     N25846 External EMERGENCY STOP      4846
 3993  Wednesday     N25846 External EMERGENCY STOP      4846
 3303     Friday     N25846 External EMERGENCY STOP      4846
 2480    Tuesday     N25846 External EMERGENCY STOP      4846
 3227  Wednesday                   N63 Handwheel? C      3227
 2157     Monday                   N63 Handwheel? C      3227
 1983    Tuesday                   N63 Handwheel? C      3227
 1705   Saturday                   N63 Handwheel? C      3227
 2954   Thursday  P873 ENCLOSURE DOOR CAN BE OPENED      2954
 2778  Wednesday  P873 ENCLOSURE DOOR CAN BE OPENED      2954
 2644     Friday  P873 ENCLOSURE DOOR CAN BE OPENED      2954
 2633    Tuesday  P873 ENCLOSURE DOOR CAN BE OPENED      2954
 2047   Saturday  P873 ENCLOSURE DOOR CAN BE OPENED      2954
 1900     Monday  P873 ENCLOSURE DOOR CAN BE OPENED      2954
 2130   Thursday           P124 Magazine is running      2130
 2130     Friday           P124 Magazine is running      2130
 1961   Saturday           P124 Magazine is running      2130
 1921    Tuesday           P124 Magazine is running      2130
 1865  Wednesday           P124 Magazine is running      2130