Remove dtype datetime NaT

前端 未结 4 1957
面向向阳花
面向向阳花 2020-12-28 16:53

I am preparing a pandas df for output, and would like to remove the NaN and NaT in the table, and leave those table locations blank. An example would be

myd         


        
4条回答
  •  醉酒成梦
    2020-12-28 17:40

    This won't win any speed awards, but if the DataFrame is not too long, reassignment using a list comprehension will do the job:

    df1['date'] = [d.strftime('%Y-%m-%d') if not pd.isnull(d) else '' for d in df1['date']]
    

    import numpy as np
    import pandas as pd
    Timestamp = pd.Timestamp
    nan = np.nan
    NaT = pd.NaT
    df1 = pd.DataFrame({
        'col1': list('ac'),
        'col2': ['b', nan],
        'date': (Timestamp('2014-08-14'), NaT)
        })
    
    df1['col2'] = df1['col2'].fillna('')
    df1['date'] = [d.strftime('%Y-%m-%d') if not pd.isnull(d) else '' for d in df1['date']]
    
    print(df1)
    

    yields

      col1 col2        date
    0    a    b  2014-08-14
    1    c                 
    

提交回复
热议问题