[英]Filter a given Column(count) based on timestamp Column in Pandas Dataframe
First filter by boolean indexing
only rows filled by Failed
and then use crosstab
with DataFrame.plot.bar
:首先按
boolean indexing
由Failed
填充的行,然后使用带有DataFrame.plot.bar
的crosstab
:
df1 = df[df['Status'].eq('Failed')]
out = pd.crosstab(df1['Hour'], df1['Job'])
out.plot.bar()
import pandas as pd
df = pd.read_csv('./data.csv')
# status
status = set(df['Status'])
dfStatus = {s: df[df['Status'] == s] for s in status}
# hours
hours = set(df['Hour'])
dfStatusPerHour = {}
# calculate them explicitly
for s in status:
dfStatusPerHour[s] = {h: dfStatus[s][dfStatus[s]['Hour'] == h].shape[0] for h in hours}
# show results
for s in status:
print(f"{s} : {dfStatusPerHour[s]}")
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.