【问题标题】:How to use a "Date" column to the "Day of the week" column in a pandas? [duplicate]如何在熊猫的“星期几”列中使用“日期”列? [复制]
【发布时间】:2021-08-07 13:11:25
【问题描述】:
我已经从这里下载了数据:https://finance.yahoo.com/quote/%5ENDX/history/
我想在数据框中添加一个工作日列,该列将包含该特定日期的星期几。
#Sample of data that I am working with:
Date Open High Low Close Adj Close Volume
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
【问题讨论】:
标签:
python
pandas
dataframe
numpy
datetime
【解决方案1】:
您可以使用.dt.dayofweek() 获取星期一=0、星期日=6 的星期几:
df['Date'] = pd.to_datetime(df['Date']) # skip if your Date column already in datetime format
df['Day of Week'] = df['Date'].dt.dayofweek
结果:
print(df)
Date Open High Low Close Adj Close Volume Day of Week
0 1985-10-01 110.620003 112.160004 110.565002 112.139999 112.139999 153160000 1
1 1985-10-02 112.139999 112.540001 110.779999 110.824997 110.824997 164640000 2
2 1985-10-03 110.839996 111.184998 110.120003 110.870003 110.870003 147300000 3
3 1985-10-04 110.870003 110.870003 109.855003 110.074997 110.074997 147900000 4
4 1985-10-07 110.074997 110.135002 108.175003 108.199997 108.199997 128640000 0
如果你想要文本中的星期几,你可以使用.dt.day_name(),如下:
df['Day of Week Text'] = df['Date'].dt.day_name()
结果:
Date Open High Low Close Adj Close Volume Day of Week Day of Week Text
0 1985-10-01 110.620003 112.160004 110.565002 112.139999 112.139999 153160000 1 Tuesday
1 1985-10-02 112.139999 112.540001 110.779999 110.824997 110.824997 164640000 2 Wednesday
2 1985-10-03 110.839996 111.184998 110.120003 110.870003 110.870003 147300000 3 Thursday
3 1985-10-04 110.870003 110.870003 109.855003 110.074997 110.074997 147900000 4 Friday
4 1985-10-07 110.074997 110.135002 108.175003 108.199997 108.199997 128640000 0 Monday