嗨,我正在尝试添加weekstart列

2024-09-29 23:26:35 发布

您现在位置:Python中文网/ 问答频道 /正文

在我当前的表中,我有一个date列,从该列我可以找到weekday。通过使用to\u timedelta,我创建了week\u start列,但它没有给出正确的日期。 代码如下:

final_data['weekday'] = final_data['DateOfInvoice'].dt.weekday

final_data['Weekstart'] = final_data['DateOfInvoice'] - pd.to_timedelta(final_data['weekday'],unit='ns', box=True, coerce=True)

输出如下:

 Date       weekday   weekstart
2016-07-23  5         2016-07-22

Tags: to代码truedatadatedtunitstart
1条回答
网友
1楼 · 发布于 2024-09-29 23:26:35

IIUC您可以构造TimedeltaIndex并从另一列中减去:

In [152]:
df['weekstart'] = df['Date'] - pd.TimedeltaIndex(df['weekday'], unit='D')
df

Out[152]:
        Date  weekday  weekstart
0 2016-07-23        5 2016-07-18

事实上,weekday列是不必要的:

In [153]:
df['weekstart'] = df['Date'] - pd.TimedeltaIndex(df['Date'].dt.dayofweek, unit='D')
df

Out[153]:
        Date  weekday  weekstart
0 2016-07-23        5 2016-07-18

相关问题 更多 >

    热门问题