Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/313.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 熊猫:创建一个';工作日';将日期(mm/dd/yy)转换为工作日的数据框列_Python_Date_Pandas_Dataframe_Weekday - Fatal编程技术网

Python 熊猫:创建一个';工作日';将日期(mm/dd/yy)转换为工作日的数据框列

Python 熊猫:创建一个';工作日';将日期(mm/dd/yy)转换为工作日的数据框列,python,date,pandas,dataframe,weekday,Python,Date,Pandas,Dataframe,Weekday,我正在尝试将日期转换为工作日-至少是工作日编号,0表示星期一,1表示星期二等。日期是对象数据类型 当我试图查找将日期转换为工作日的信息/帮助,或者添加一个名为“weekday”的新数据框列并将其转换到该列时,我在Python上找不到任何内容 我发现: data.loc[:,'weekday'] = data.index.weekday 但它似乎不起作用,因为我得到了这个错误: AttributeError: 'Int64Index' object has no attribute 'weekd

我正在尝试将日期转换为工作日-至少是工作日编号,0表示星期一,1表示星期二等。日期是对象数据类型

当我试图查找将日期转换为工作日的信息/帮助,或者添加一个名为“weekday”的新数据框列并将其转换到该列时,我在Python上找不到任何内容

我发现:

data.loc[:,'weekday'] = data.index.weekday
但它似乎不起作用,因为我得到了这个错误:

AttributeError: 'Int64Index' object has no attribute 'weekday'

没有容易找到的例子。有人能帮忙吗?

不确定您的数据结构,但如果您将其转换为datetime,则应该可以:

import pandas as pd

df = pd.DataFrame({'date': ['2014/06/01', '2014/01/01', '2014/08/01','2014/09/01','2014/10/01']})
df = pd.to_datetime(df['date'])

df_weekdays = df.dt.dayofweek

下面是一个使用熊猫创建日历类型表示的示例,将帮助您在熊猫中操作日期:

输出如下所示:

代码

输出


查看提供的代码片段和错误消息,您可以看到您正在尝试从整数索引中提取工作日,这很困难<强>;)

Abbas和Tasos已经展示了如何使用适当的数据类型(类似datetime的类型)来实现这一点

PS未来的一个提示:当问问题时,总是试着提供一个答案。如果是熊猫问题,请提供示例输入和输出数据集(CSV/dict/JSON/Python代码格式的5-7行作为文本,因此在为您编写答案时可以使用它)


这将有助于避免出现“您的代码不适用于我”或“它不适用于我的数据”等情况。等等。

您能再多输入一些代码吗?
数据从哪里来?这就是我目前所拥有的一切;代码就是我要找的。。数据是数十万条记录..我猜您使用的是
pandas
。我已经添加了这个标签,希望了解这个模块的人能够提供帮助。啊。。是的,我是。道歉。。我应该提到这一点。非常感谢。看来我的编辑正在审核中。如果您编辑您的问题并添加标签或更新标题,会更好。不,它不起作用。。我真的不知道该怎么办。。谢谢你,谢谢马苏。。我刚刚明白你的第一句话——我对这个游戏不熟悉:-)。也谢谢你的建议。。很appreciated@Theant6118,总是乐于助人:)
import pandas as pd
cal = pd.DataFrame(pd.date_range('2016-01-01','2016-01-31'),columns=['DATE'])
#Refer to https://docs.python.org/2/library/time.html for detailed list of format specifiers
cal['DAY'] = cal.DATE.dt.strftime('%a')
cal['day'] = cal.DATE.dt.dayofweek
cal['WEEK'] = cal.DATE.dt.week
cal['DT'] = cal.DATE.dt.day
cal.loc[cal['WEEK'] > 52, 'WEEK'] = 0
cal.set_index('WEEK',inplace=True)
calg = cal.groupby(['day','DAY']).apply(lambda x: x.DT)
calg.unstack(level=[0,1])
day    0   1   2   3   4   5   6
DAY  Mon Tue Wed Thu Fri Sat Sun
WEEK
0    NaN NaN NaN NaN   1   2   3
1      4   5   6   7   8   9  10
2     11  12  13  14  15  16  17
3     18  19  20  21  22  23  24
4     25  26  27  28  29  30  31