如何在python数据框架中从mm/dd/yyy提取星期几

如何在python数据框架中从mm/dd/yyy提取星期几,python,pandas,dataframe,dayofweek,Python,Pandas,Dataframe,Dayofweek,我在python数据框架中有一个非索引列,日期为2017年3月2日。我想提取一周中的某一天,并将其作为一个单独的列。首先,您需要将日期转换为datetime对象: import datetime date = datetime.datetime.strptime("02/03/2017", "%d/%m/%Y") print date.weekday() 请参见您可能还对arrow模块感兴趣,因为它提供了许多功能和优势。在这里,我演示了它以两种形式为一种语言环境提供工作日名称的能力,以及以

我在python数据框架中有一个非索引列,日期为2017年3月2日。我想提取一周中的某一天,并将其作为一个单独的列。

首先,您需要将日期转换为datetime对象:

import datetime


date = datetime.datetime.strptime("02/03/2017", "%d/%m/%Y")
print date.weekday()

请参见

您可能还对arrow模块感兴趣,因为它提供了许多功能和优势。在这里,我演示了它以两种形式为一种语言环境提供工作日名称的能力,以及以一种形式为非英语语言环境提供工作日名称的能力

>>> import arrow
>>> theDate = arrow.get('02/03/2017', 'DD/MM/YYYY')
>>> theDate
<Arrow [2017-03-02T00:00:00+00:00]>
>>> theDate.weekday()
3
>>> theDate.format('ddd', locale='en_GB')
'Thu'
>>> theDate.format('dddd', locale='en_GB')
'Thursday'
>>> theDate.format('dddd', locale='fr_FR')
'jeudi'
导入箭头 >>>日期=arrow.get('02/03/2017','DD/MM/YYYY')) >>>日期 >>>工作日 3. >>>格式('ddd',locale='en_GB') “Thu” >>>格式('dddd',locale='en_GB') “星期四” >>>格式('dddd',locale='fr\u fr') “朱迪”
我找到的解决方案是一个分两步的过程,因为我还没有找到一种方法让
工作日()
处理熊猫系列

import pandas as pd

your_df = pd.DataFrame(data={'Date': ['31/1/2018', '1/1/2018', '31/12/2018',
                                      '28/2/2016', '3/3/2035']})

dt_series = pd.to_datetime(your_df['Date'], format="%d/%m/%Y")

dow = []
for dt in range(0, len(your_df)):
    dow.append(dt_series[dt].weekday())

your_df.insert(1, 'Day of week', dow)

print(your_df)
输出应如下所示:

         Date  Day of week
0   31/1/2018            2
1    1/1/2018            0
2  31/12/2018            0
3   28/2/2016            6
4    3/3/2035            5
注:

  • 我使用的是dd/mm/yyyy格式。如果日期采用美国或其他格式,则需要将
    的format参数更改为_datetime()
  • Python工作日:周一=0,周日=6

  • 事实上,使用熊猫是有解决办法的

    import pandas as pd
    
    your_df = pd.DataFrame(data={'Date': ['31/1/2018', '1/1/2018', '31/12/2018',
                                          '28/2/2016', '3/3/2035']})
    
    your_df['Date'] = pd.to_datetime(your_df['Date'], format="%d/%m/%Y")
    
    your_df['Day of week (int)'] = your_df['Date'].dt.weekday
    
    your_df['Day of week (str)'] = your_df['Date'].dt.day_name()
    
    print(your_df)
    
    更多信息请点击此处:


    根据我的另一个(不太优雅的)答案…

    那么到目前为止您尝试了什么?Dataframe是一个通用术语。您想确定您正在使用的特定软件系统吗?对不起。我在Python3中使用了pandas。我还应该提到,我遇到的错误是指试图将列作为一个系列处理,这似乎是不允许的。例如,如果我写:df['DOW']=datetime.datetime.strtime(df[Production_Date],'%mm/%m/%Y'),我会得到一个错误,比如无法解析两个类型的参数。我只是在抓救命稻草。谢谢你的建议。我必须看看是否可以将其应用于数据帧列。