Python 带有';datetime.date';

Python 带有';datetime.date';,python,pandas,dataframe,datetime,Python,Pandas,Dataframe,Datetime,我是新来的熊猫,我想创建一个数据帧为每个工作日的基础上,一个更大的数据帧与所有类型的日期 我使用方法data=pd.read\u csv()从csv读取初始数据,然后我的“Timestamp”列被设置为datetime,如下所示:data[“Timestamp”]=pd.to\u datetime(data[“Timestamp”]) 代码: import pandas as pd from datetime import datetime import calendar data = pd.

我是新来的熊猫,我想创建一个数据帧为每个工作日的基础上,一个更大的数据帧与所有类型的日期

我使用方法
data=pd.read\u csv()
从csv读取初始数据,然后我的“Timestamp”列被设置为datetime,如下所示:
data[“Timestamp”]=pd.to\u datetime(data[“Timestamp”])

代码:

import pandas as pd
from datetime import datetime
import calendar

data = pd.read_csv("stat.csv")
data["Timestamp"] = pd.to_datetime(data["Timestamp"])

dataMonday = data.loc[calendar.day_name[datetime.weekday(data["Timestamp"])] == "Monday"]
现在,输出如下:

TypeError:datetime.date对象的描述符“weekday”不适用于“Series”对象


到目前为止,我发现的唯一方法是在Timestamp列中使用
for
循环进行迭代,但这似乎是一个糟糕的解决方案,因为我几乎无法在此基础上创建另一个数据帧。

正如错误所示,您正试图将
平日
函数应用于整个系列。相反,您需要在序列上应用
工作日
方法元素<代码>应用是用于此目的的工具:


dataMonday=data[data[“Timestamp”].apply(datetime.weekday)==“Monday”]
正如错误所示,您正在尝试将
weekday
函数应用于整个系列。相反,您需要在序列上应用
工作日
方法元素<代码>应用是用于此目的的工具:


dataMonday=data[data[“Timestamp”].apply(datetime.weekday)==“Monday”]

以下是一种添加包含工作日名称的列的方法。这种方法使用
.dt
日期存取器,并对序列进行操作,速度很快

import pandas as pd
n = 8
t = pd.DataFrame({'x': [*range(n)], 
                  'Timestamp': pd.date_range(start='2020-01-01', periods=n, freq='D')})
t['Timestamp'] = pd.to_datetime(t['Timestamp']) # not needed in this example
t['weekday'] = t['Timestamp'].dt.day_name()
print(t)

   x  Timestamp    weekday
0  0 2020-01-01  Wednesday
1  1 2020-01-02   Thursday
2  2 2020-01-03     Friday
3  3 2020-01-04   Saturday
4  4 2020-01-05     Sunday
5  5 2020-01-06     Monday
6  6 2020-01-07    Tuesday
7  7 2020-01-08  Wednesday

下面是一种添加名为weekday的列的方法。这种方法使用
.dt
日期存取器,并对序列进行操作,速度很快

import pandas as pd
n = 8
t = pd.DataFrame({'x': [*range(n)], 
                  'Timestamp': pd.date_range(start='2020-01-01', periods=n, freq='D')})
t['Timestamp'] = pd.to_datetime(t['Timestamp']) # not needed in this example
t['weekday'] = t['Timestamp'].dt.day_name()
print(t)

   x  Timestamp    weekday
0  0 2020-01-01  Wednesday
1  1 2020-01-02   Thursday
2  2 2020-01-03     Friday
3  3 2020-01-04   Saturday
4  4 2020-01-05     Sunday
5  5 2020-01-06     Monday
6  6 2020-01-07    Tuesday
7  7 2020-01-08  Wednesday

我尝试使用
.apply
工具,显然是错误的,因为我这样称呼它:
data.apply(datetime.weekday(data[“Timestamp”])
。但是,我仍然警告
元素级比较失败;改为返回标量,但将来将执行元素比较,结果数据帧总是空的。我尝试使用
.apply
工具,显然是错误的,因为我这样称呼它:
data.apply(datetime.weekday(data[“Timestamp”])
。但是,我仍然警告
元素级比较失败;改为返回标量,但将来将执行元素级比较
,结果数据框始终为空。谢谢,效果很好,添加整个列可能会帮助我在上面可视化数据!谢谢,效果很好,添加整个专栏可能会帮助我在上面可视化我的数据!