我正在尝试从日期创建日期栏。当我这样做时,它可以完美地工作:

from dateutil import parser
parser.parse(dta.date[0]).strftime("%A")


Output: 'Tuesday'

但是,当我尝试像这样创建新列时:

dta['week_day'] = parser.parse(dta['date']).strftime("%A")


它给我一个错误:

TypeError: Parser must be a string or character stream, not Series

dta.info()


<class 'pandas.core.frame.DataFrame'>RangeIndex: 107927 entries, 0 to 107926Data columns (total 16 columns):date 107927 non-null objectdep_hour 107927 non-null int64dep_minute 107927 non-null int64dep_time 107927 non-null int64dep_delay 107927 non-null int64arr_hour 107927 non-null int64arr_minute 107927 non-null int64arr_time 107927 non-null int64arr_delay 107927 non-null int64carrier 107927 non-null objecttailnum 107927 non-null objectflight 107927 non-null int64origin 107927 non-null objectdest 107927 non-null objectair_time 107927 non-null int64distance 107927 non-null int64dtypes: int64(11), object(5)

日期看起来像这样:

python - 从Python中的日期开始创建日列时出错-Pandas DataFrame-LMLPHP

最佳答案

我将在系列的列名称.apply上使用date函数。

from dateutil import parser
import pandas as pd

dta = pd.DataFrame([{"date":"10/20/2017"},{"date":"1/5/2017"},{"date":"5/30/2017"}])
dta['date'] = dta['date'].apply(lambda date:parser.parse(date).strftime("%A"))
print(dta)


输出:

       date
0    Friday
1  Thursday
2   Tuesday

关于python - 从Python中的日期开始创建日列时出错-Pandas DataFrame,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47525505/

10-12 21:09