【发布时间】:2020-12-06 13:24:20
【问题描述】:
【问题讨论】:
标签: python pandas dataframe matplotlib pandas-groupby
【问题讨论】:
标签: python pandas dataframe matplotlib pandas-groupby
首先按boolean indexing 过滤,只过滤由Failed 填充的行,然后使用crosstab 和DataFrame.plot.bar:
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]}")
【讨论】: