- 已合成您的数据
- pandas 提供
pd.cut()
对连续数据进行分类
- 建立你想要的间隔
pd.IntervalIndex.from_tuples()
- 标签 有一个错误pd.cut() 标签错误。使用的解决方法。
df = pd.DataFrame({
"Date":np.random.choice(pd.date_range(dt.date(2021,1,1), dt.date(2021,1,3)), 10),
"Code":np.random.randint(100,105, 10),
"Name":np.random.choice(["Becky","Dan","Sharon","Scott"],10),
"Building":np.random.choice(list("ABCD"), 10),
"Role":np.random.choice(["Engineer","Artist"], 10),
"Hours":np.random.randint(7,10, 10)
})
bins = pd.IntervalIndex.from_tuples([(0, 7.99), (8,8), (8.01, 100)], closed="both")
labels = ["Min_Hours","Normal_Hours","Extra_Hours"]
dfs = df.groupby(["Date",pd.cut(df.Hours, bins).map(dict(zip(bins,
labels)))])["Name"].count().unstack()
日期 |
Min_Hours |
正常_小时 |
额外时间 |
2021-01-01 00:00:00 |
1 |
0 |
1 |
2021-01-02 00:00:00 |
1 |
2 |
2 |
2021-01-03 00:00:00 |
2 |
1 |
0 |