gpt4 book ai didi

python - Pandas :从一行创建多行 'dummy data'

转载 作者:行者123 更新时间:2023-12-05 03:17:51 25 4
gpt4 key购买 nike

我正在构建一个机器学习模型,我需要用合成数据填充一个测试数据框。我有目前看起来像这样的时间序列数据:

Date    DayOfWeek   Unit 
2022-10-01 7 A
2022-10-02 1 A
2022-10-03 2 A

我需要复制所有日期行,但每个“单位”(A、B、C、D)都需要一行,如下所示:

Date    DayOfWeek   Unit 
2022-10-01 7 A
2022-10-01 7 B
2022-10-01 7 C
2022-10-01 7 D
2022-10-02 1 A
2022-10-02 1 B
2022-10-02 1 C
2022-10-02 1 D
2022-10-03 2 A
2022-10-03 2 B
2022-10-03 2 C
2022-10-03 2 D

我找到了一个 previous answer这告诉我如何重复:

df.reindex(df.index.repeat(4)).reset_index(drop=True)

最好的方法是什么,而不是重复所有内容,只重复“日期”和“星期几”,但在“单位”上填充 A 到 D?

最佳答案

建议使用 itertools.product 目的:

from itertools import product

df = pd.DataFrame(
data=product(
pd.Series(pd.date_range('2022-10-01', '2022-10-03', freq='D')),
"ABCD"
),
columns=("Date", "Unit"),
)
df["DayOfWeek"] = df["Date"].dt.dayofweek.add(1) # To Have Day of Week Starting with 1
df = df[["Date", "DayOfWeek", "Unit"]]
print(df)

输出:

         Date  DayOfWeek Unit
0 2022-10-01 6 A
1 2022-10-01 6 B
2 2022-10-01 6 C
3 2022-10-01 6 D
4 2022-10-02 7 A
5 2022-10-02 7 B
6 2022-10-02 7 C
7 2022-10-02 7 D
8 2022-10-03 1 A
9 2022-10-03 1 B
10 2022-10-03 1 C
11 2022-10-03 1 D

关于python - Pandas :从一行创建多行 'dummy data',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73899974/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com