在python中同时使用字母和整数对列表排序

2024-06-17 15:06:34 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个文本文件,其中包含timestampexception name

文本文件看起来像这样

1573594032526 NullPointerException
1573594032527 NullPointerException
1573594032528 IllegalAgrumentsException
1573596032526 UserNotFoundException
1573597032526 NullPointerException

我已通过以下方式将它们转换为hourminutesecond

                data = []
                for line in resp.text.splitlines():
                    split_ = line.split()

                    date = datetime.utcfromtimestamp(int(split_[1]) / 1000)

                    data.append({
                        "second": date.second,
                        "minute": date.minute,
                        "hour": date.hour,
                        "data": split_[-1],   ------> exception name
                    })

我必须根据timestampname对它们进行排序,即输出应为:

21:15-21:30 IllegalAgrumentsException 1,
21:15-21:30 NullPointerException 2,
22:00-22:15 UserNotFoundException 1,
22:15-22:30 NullPointerException 1,

所以在这种情况下NullPointerExceptionIllegalAgrumentsException的时间戳是相同的(以小时、分钟和秒为单位),所以字母上IllegalAgrumentsException排在第一位。 在每行的末尾number也是该时间范围内的异常计数

我怎样才能做到这一点


Tags: namedatadateline时间exceptiontimestampsplit
1条回答
网友
1楼 · 发布于 2024-06-17 15:06:34

将数据读入dataframe,将时间戳转换为所需格式,然后按如下方式排序:

df.sort_values(by=['timestamp', 'exception_name'])

最后一列可以使用

df.groupby(['timestamp','exception_name']).transform('count')

相关问题 更多 >