pandas fillna 来自另一列的日期

muo*_*uon 1 python datetime date data-manipulation pandas

获取我的测试数据:

 import pandas as pd

 df =    {'Id': {1762056: 2.0, 1762055: 1.0},
'FillDate': {1762056: Timestamp('2015-08-01 00:00:00'), 1762055:Timestamp('2015-08-01 00:00:00')}, 
 'Date': {1762056: nan, 1762055: nan}, 
 }

df = pd.DataFrame(df)
Run Code Online (Sandbox Code Playgroud)

数据看起来像:

        Id         Date        FillDate
        1.0      NaN         2015-08-01
        2.0      NaN         2015-08-01
Run Code Online (Sandbox Code Playgroud)

因此,为了填补缺失的日期,我这样做:

df['Date'].fillna(df['FillDate'], inplace=True)
Run Code Online (Sandbox Code Playgroud)

这给了我

         Id    Date                  FillDate
        1.0  1438387200000000000  2015-08-01
        2.0  1438387200000000000  2015-08-01
Run Code Online (Sandbox Code Playgroud)

如何获取Date日期形式的列

muo*_*uon 5

这有效:

 df['Date'].fillna(pd.to_datetime(df['FillDate']).dt.date, inplace=True)
Run Code Online (Sandbox Code Playgroud)

这使

      Id    Date       FillDate
      1.0  2015-08-01  2015-08-01
      2.0  2015-08-01  2015-08-01
Run Code Online (Sandbox Code Playgroud)