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对象)。