我正在尝试从日期创建日期栏。当我这样做时,它可以完美地工作:
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)
日期看起来像这样:
最佳答案
我将在系列的列名称.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/