如何在pandas中基于Date日期列新增对应星期几的字段列
操作步骤
首先确保Date列已转换为pandas支持的datetime类型,若原数据中Date列为字符串格式,先执行转换:
import pandas as pd # 替换df为你实际的DataFrame变量名 df['Date'] = pd.to_datetime(df['Date'])
根据你需要的存储格式选择对应生成weekday列的方法:
- 如需存储中文星期名称(如「星期一」「星期二」)
推荐使用映射方案,兼容性更强,无需依赖环境locale配置:
week_map = {0:'星期一', 1:'星期二', 2:'星期三', 3:'星期四', 4:'星期五', 5:'星期六', 6:'星期日'} df['weekday'] = df['Date'].dt.weekday.map(week_map)
如果你的环境配置了中文locale,也可以直接使用:
df['weekday'] = df['Date'].dt.day_name(locale='zh_CN')
- 如需存储英文星期名称(如「Monday」「Tuesday」)
df['weekday'] = df['Date'].dt.day_name()
- 如需存储数字格式(0代表周一、6代表周日)
df['weekday'] = df['Date'].dt.weekday
按照你提供的样例数据运行后,输出效果如下:
| Date | Open | High | Low | Close | Adj Close | Volume | weekday | |
|---|---|---|---|---|---|---|---|---|
| 0 | 1985-10-01 | 110.620003 | 112.160004 | 110.565002 | 112.139999 | 112.139999 | 153160000 | 星期二 |
| 1 | 1985-10-02 | 112.139999 | 112.540001 | 110.779999 | 110.824997 | 110.824997 | 164640000 | 星期三 |
| 2 | 1985-10-03 | 110.839996 | 111.184998 | 110.120003 | 110.870003 | 110.870003 | 147300000 | 星期四 |
| 3 | 1985-10-04 | 110.870003 | 110.870003 | 109.855003 | 110.074997 | 110.074997 | 147900000 | 星期五 |
| 4 | 1985-10-07 | 110.074997 | 110.135002 | 108.175003 | 108.199997 | 108.199997 | 128640000 | 星期一 |
内容的提问来源于stack exchange,提问作者beginner_learner
相关产品推荐
相关产品推荐

