【问题标题】:return missing dates Python返回缺失的日期 Python
【发布时间】:2019-10-30 07:21:04
【问题描述】:

我有一个包含 1600 个日期的 CSV 文件,我正在尝试查找所有缺失的日期。例如:
03-10-2019
01-10-2019
29-09-2019
28-09-2019
应该返回:02-10-2019,30-09-2019。

这是我写的:

with open('measurements.csv','r') as csvfile:
df = pd.read_csv(csvfile,  delimiter=',')

timestamps = df['observation_time'] #Getting only the date

for line in timestamps:
date_str = line
try: # convert string to time
    date = date_time_obj = datetime.datetime.strptime(date_str, '%Y-%m-%d %H:%M:%S')
    dates.append(date) 
except:
    print("Date parsing failed")

dates = pd.DataFrame(dates,columns =['actual_date']) 

pd.date_range(start = dates.min(), end = dates.max()).difference(dates.index)

这会返回一个错误

“无法转换输入 [actual_date 2018-09-17 22:00:00 dtype: datetime64[ns]] 类型为 时间戳”

【问题讨论】:

    标签: python-3.x pandas dataframe datetime


    【解决方案1】:

    想法是使用DataFrame.asfreq 将所有缺失值添加到DatetimeIndex,因此可以通过boolean indexingSeries.isna 过滤:

    df['observation_time'] = pd.to_datetime(df['observation_time'], dayfirst=True)
    df1 = df.set_index(df['observation_time']).sort_index().asfreq('d')
    print (df1)
                     observation_time
    observation_time                 
    2019-09-28             2019-09-28
    2019-09-29             2019-09-29
    2019-09-30                    NaT
    2019-10-01             2019-10-01
    2019-10-02                    NaT
    2019-10-03             2019-10-03
    
    dates = df1.index[df1['observation_time'].isna()]
    print (dates )
    DatetimeIndex(['2019-09-30', '2019-10-02'], dtype='datetime64[ns]', 
    name='observation_time', freq=None)
    

    【讨论】:

    • 感谢您的快速回答,我看到尝试执行代码时出现错误:ValueError: cannot reindex from a duplicate axis
    • @12majore - 你能测试一下是否将df1 = df.set_index(df['observation_time']).sort_index().asfreq('d') 更改为df1 = df.set_index(df['observation_time']).drop_duplicates().sort_index().asfreq('d') 吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-22
    • 1970-01-01
    • 2021-07-22
    • 2018-02-12
    • 2018-06-24
    相关资源
    最近更新 更多