首页 > 解决方案 > 基于其他列创建具有增量的新列

问题描述

我有一个这样的数据框:

我的数据框: 在此处输入图像描述

我想像这样改造它......:

在此处输入图像描述

如果有人可以提供帮助,非常感谢

标签: pandaspandas-groupby

解决方案


  • 已合成您的数据
  • 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

推荐阅读