Pandas 为给定列指定行中某个值的每个条目的频率
此数据帧是通过timeseries重新采样操作获得的,如下所示Pandas 为给定列指定行中某个值的每个条目的频率,pandas,Pandas,此数据帧是通过timeseries重新采样操作获得的,如下所示 Ticket Priority Submit Date 2018-01-02 04:00:00 1 P3 - Normal 2018-01-02 08:00:00 18 P3 - NormalP3 - NormalP3 - NormalP3 - NormalP3... 2018-01-02 12:00:00 23 P2 - HighP3 - Norm
Ticket Priority
Submit Date
2018-01-02 04:00:00 1 P3 - Normal
2018-01-02 08:00:00 18 P3 - NormalP3 - NormalP3 - NormalP3 - NormalP3...
2018-01-02 12:00:00 23 P2 - HighP3 - NormalP3 - NormalP3 - NormalP3 -...
2018-01-02 16:00:00 1 P3 - Normal
2018-01-02 20:00:00 0 0
2018-01-03 00:00:00 0 0
2018-01-03 04:00:00 1 P3 - Normal
2018-01-03 08:00:00 3 P3 - NormalP3 - NormalP3 - Normal
我希望得到的是这样的东西:
Ticket Priority
Submit Date
2018-01-02 04:00:00 1 P3 - Normal = 1
2018-01-02 08:00:00 18 P3 - Normal = 4
2018-01-02 12:00:00 23 P2 - High = 1
P3 - Normal = 3
2018-01-02 16:00:00 1 P3 - Normal = 1
2018-01-02 20:00:00 0 0
2018-01-03 00:00:00 0 0
2018-01-03 04:00:00 1 P3 - Normal = 1
2018-01-03 08:00:00 3 P3 - Normal = 3
其中,“优先级”列列出了票证类型以及每种票证类型的发生次数
def get_priorities(x):
types = ['Normal','High']
if x == 0:
return 0
else:
z = []
for y in types:
if y in x:
z.append(str(x[:2]+ '-' + '{} = '.format(y) + str(x.count(y))))
return ' '.join(z)
这应该是您的自定义函数,并使用lambda将其应用于数据帧
df['Priority'] = df['Priority'].apply(lambda x: get_priorities(x))
如果这对你不起作用,请告诉我