gpt4 book ai didi

python - 在 Pandas 中重复行并添加序列列

转载 作者:太空宇宙 更新时间:2023-11-04 07:31:36 25 4
gpt4 key购买 nike

我有一个数据框,它从日历中获取日期并从日期中提取一些特征。

def processDate(self,date):
WEEKDAY_MAP = {0: 1, 1: 2, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7}
df = pandas.DataFrame(data=[date], columns = ['DATE'])
df['DATE'] = pandas.to_datetime(df['DATE'])
df['DATE'] = df['DATE'].astype(str)
df['MONTH'] = pandas.DatetimeIndex(df['DATE']).month
df['WEEKDAY'] = pandas.DatetimeIndex(df['DATE']).dayofweek
df['WEEKDAY'] = df['WEEKDAY'].map(WEEKDAY_MAP)
df['HOLIDAY'] = '0'
set_holiday(df)
df['INTERVALL'] = '1'
df.append([df]*5,ignore_index=True)
print(df)

控制台日志:

     DATE        MONTH  WEEKDAY HOLIDAY INTERVALL
2017-09-13 9 3 0 1

我需要:将条目复制 48 次并增加 INTERVALL 值。

结果应该是这样的:

控制台日志:

     DATE        MONTH  WEEKDAY HOLIDAY INTERVALL
2017-09-13 9 3 0 1
2017-09-13 9 3 0 2
2017-09-13 9 3 0 3
2017-09-13 9 3 0 4
2017-09-13 9 3 0 5
...
2017-09-13 9 3 0 48

我试过 df.append([df]*48,ignore_index=True) 但没用。

最佳答案

使用 np.repeat 并创建一个新的数据框。

df = pd.DataFrame(df.values.repeat(48, axis=0), columns=df.columns)
df['INTERVALL'] = df.index + 1

df.head(10)

DATE MONTH WEEKDAY HOLIDAY INTERVALL
0 2017-09-13 9 3 0 1
1 2017-09-13 9 3 0 2
2 2017-09-13 9 3 0 3
3 2017-09-13 9 3 0 4
4 2017-09-13 9 3 0 5

df.shape
(48, 5)

关于python - 在 Pandas 中重复行并添加序列列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46242177/

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