Python 将所有日期转换为周的开始日期时出错
我正在尝试将日期转换为周周期,然后获取周期的第一部分Python 将所有日期转换为周的开始日期时出错,python,pandas,Python,Pandas,我正在尝试将日期转换为周周期,然后获取周期的第一部分 df['Date'] = df['Date (mm/dd/yyyy)'].dt.to_period('W').apply(lambda r: r.start_time) 但这给了我一个错误 AttributeError: 'NaTType' object has no attribute 'start_time' 我使用的是熊猫0.25.2版本 虽然它以前正在运行,但这次没有运行。无法识别发生了什么。请帮助解决错误使用技巧np.nan!=
df['Date'] = df['Date (mm/dd/yyyy)'].dt.to_period('W').apply(lambda r: r.start_time)
但这给了我一个错误
AttributeError: 'NaTType' object has no attribute 'start_time'
我使用的是熊猫0.25.2版本
虽然它以前正在运行,但这次没有运行。无法识别发生了什么。请帮助解决错误使用技巧
np.nan!=np.nan
,因此您可以添加if-else
语句或与默认的how='s'
一起使用:
rng = pd.date_range('2017-04-03', periods=10)
df = pd.DataFrame({'Date (mm/dd/yyyy)': rng})
df.loc[0, 'Date (mm/dd/yyyy)'] = np.nan
df['Date'] = (df['Date (mm/dd/yyyy)'].dt.to_period('W')
.apply(lambda r: r.start_time if r == r else np.nan))
df['Date1'] = df['Date (mm/dd/yyyy)'].dt.to_period('W').dt.to_timestamp()
print (df)
Date (mm/dd/yyyy) Date Date1
0 NaT NaT NaT
1 2017-04-04 2017-04-03 2017-04-03
2 2017-04-05 2017-04-03 2017-04-03
3 2017-04-06 2017-04-03 2017-04-03
4 2017-04-07 2017-04-03 2017-04-03
5 2017-04-08 2017-04-03 2017-04-03
6 2017-04-09 2017-04-03 2017-04-03
7 2017-04-10 2017-04-10 2017-04-10
8 2017-04-11 2017-04-10 2017-04-10
9 2017-04-12 2017-04-10 2017-04-10
您的数据缺少表示为
NaT
的值(对于datetime对象)。