日期时间不受支持的操作数类型 - :'NoneType'和'NoneType'

时间:2017-06-23 01:02:47

标签: python loops pandas timedelta

我使用的DataFrame结构如下所示。有200个独特的列和45个独特的日期。

             A100  A101       
DATE         
2016-09-25    NaN    4 
2016-10-23    6     NaN

我想确定第一个和最后一个有效索引之间的时间。为此,我将其用于循环:

time_to_finish = dict()
for col in df:
    first_date = df[col].first_valid_index()
    last_date = df[col].last_valid_index()
    time = last_date - first_date
    time_to_finish[col] = time

问题是我收到类型错误TypeError: unsupported operand type(s) for -: 'NoneType' and 'NoneType'

我不明白为什么,因为如果我选择一列并自行查找日期,我就不会收到错误。例如,这很好用:

first_date = df['A100'].first_valid_index()
last_date = df['A100'].last_valid_index()
last_date - first_date

我收到了有效的输出,例如Timedelta('20 days 00:00:00')

另外,如果我使用first_date或last_date作为字典值而不是变量时间,我会得到一个没有错误的完整字典。

为什么这不能在循环中工作?

0 个答案:

没有答案