Как изменить столбец с датами с помощью dtype: object на datetime и применить разницу с другим datetime? - PullRequest
1 голос
/ 30 апреля 2020

У меня есть следующие данные:

    fip_code           npi                             start_date                                                                                                                                   
     0          1      gathering_size_10_0             3/28/2020                                                                                                                                   
     1          1      gathering_size_25_to_11         3/19/2020                                                                                                                                   
     2          1      non-essential_services_closure  3/28/2020   
     .          .                     .                 
     .          .                     .                 
     .          .                     .                 

, и я хочу преобразовать каждое значение столбца start_date в объект datetime, скажем x , а затем данный объект datetime y = 2020-03-12 00: 00: 00 , замените значение в столбце start_date на xy .

Вот код, используемый для генерации кадра данных:

    import pandas as pd  
    import numpy as np 
    from datetime import datetime 
    from dateutil import parser

    url_npi = 'https://raw.githubusercontent.com/Keystone-Strategy/covid19-interventiondata/master/complete_npis_raw_policies.csv'
    df = pd.read_csv(url_npi, error_bad_lines=False)
    df = df[['fip_code','npi','start_date']]

1 Ответ

0 голосов
/ 05 мая 2020

Хорошо, я понял это:

df['start_date'] = pd.to_datetime(df['start_date'],infer_datetime_format=True,errors="coerce")
base_str = "3/1/2020"; print("\n\n base date: ",base_str)
end_str = "4/29/2020"; print("\n\n end date: ",end_str)
base = pd.to_datetime(base_str)
end = pd.to_datetime(end_str)
df_npi['days_in_effect'] = df_npi.apply(lambda row: (end - row['start_date']).days, axis=1)
df_npi['days_from_base'] = df_npi.apply(lambda row: (row['start_date'] - base).days, axis=1)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...