【发布时间】:2023-02-02 00:57:45
【问题描述】:
我正在尝试提出一个程序,该程序根据列中的值为每一行创建多行和多列。
这是我的数据
import pandas as pd
data = pd.read_excel("test data.xlsx")
| Id | #ofweeks | Manhours | StartDate | EndDate | Startingyear | StartingWeek |
|---|---|---|---|---|---|---|
| aaa | 2 | 10 | 1/15/2023 | 1/29/2023 | 2023 | 3 |
| bbb | 3 | 12 | 2/12/2023 | 3/05/2023 | 2023 | 7 |
该表需要扩展,以便每一行都扩展周数。 需要为每周的工时数添加列,并为每个 Id 添加列数的周数。
结果应该是这样的
| Id | #ofweeks | Manhours | StartDate | EndDate | Startingyear | StartingWeek | WeekCount | Labor | Week# |
|---|---|---|---|---|---|---|---|---|---|
| aaa | 2 | 10 | 1/15/2023 | 1/29/2023 | 2023 | 3 | 1 | 5 | 3 |
| aaa | 2 | 10 | 1/15/2023 | 1/29/2023 | 2023 | 3 | 2 | 5 | 4 |
| bbb | 3 | 12 | 2/12/2023 | 3/05/2023 | 2023 | 7 | 1 | 4 | 7 |
| bbb | 3 | 12 | 2/12/2023 | 3/05/2023 | 2023 | 7 | 2 | 4 | 8 |
| bbb | 3 | 12 | 2/12/2023 | 3/05/2023 | 2023 | 7 | 3 | 4 | 10 |
我能够使用以下方法扩展表格:
data2 = data.loc[data.index.repeat(data["#ofweeks"])].reset_index(drop=True)
data2
我还使用以下方法添加了 Labor:
data2["Labor"] = data2["Manhours"]/data3["#ofweeks"]
data2
如何添加 WeekCount 和 Week# 列?
此外,我如何计算超过一个日历年的记录?
【问题讨论】: